关于通用定时器的概念定时器记录内部时钟的频率那么可以定时 那么定时器记录外部的频率那么就变成计数器 点击展开完整图片 通过ETR可以通过ETR来进行和外部通信,但是一般一个定时器也就只有一个ETR引脚一般是定时器CH1 通过TIXTIX配置可能稍微复杂一点,但是TIX有CH1-CH4 配置ETR我们打开STM32cubemx 我们直接选择Clock Source -> ETR 这样子下方就会出现定时器配置 一、Counter Settings(计数器设置)这部分是定时器最核心的时基配置,决定了它的计数频率和溢出周期。 配置项 作用说明 Prescaler (PS
首先你必须确保你访问ST官网没问题,但是STcubemx他就是不行 然后卸载你当前安装的全部版本 首先安装6.0.0版本注意安装版本之前必须安装Jre (不安装,这是报错) jre下载链接 然后进行6.0.0版本安装 (安装方法差不多的,不知道看之前的文章) 安装完成之后,右键打开文件所在位置 把当前版本升级到6.1.2然后用6.1.2的包进行覆盖 然后我们打开cubemx,发现已经是6.1.2了。 建议安装到这里可以结束了 更新的版本依赖jdk,不知道为什么还有可能会断网 然后进行升级最新版本 但是可能会出现小报错,说正在连接服务器 不用管,等一下 或者我们直接任务管理器重启软
配置STM32定时器这里不多赘述,具体请看基本库,那边有很详细介绍 STM32 定时器分类一览表 类型 编号 总线 功能 高级定时器 TIM1、TIM8 APB2 拥有通用定时器全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能 通用定时器 TIM2、TIM3、TIM4、TIM5 APB1 拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能 基本定时器 TIM6、TIM7 APB1 拥有定时中断、主模式触发DAC的功能 我们先点击左边Timers 这边就是定时器 然后右边是选择模式 英文原文 中
配置EXTI我们直接把PB14设置为中断这里和标准库的区别是,不用再进行gpio初始化了,HAL库里面直接包括有了初始化 然后我们点击选择对应的引脚 配置项 可选值 作用 GPIO mode External Interrupt Mode with Rising edge trigger detectionExternal Interrupt Mode with Falling edge trigger detectionExternal Interrupt Mode with Rising/Falling edge trigger detectionExternal
配置GPIO工程配置这里不赘述了 STM32HAL库配置 我们用右边图像化配置GPIO 灰色的就是没有配置的GPIO假设我们要配置PC13GPIO_Input:是配置输入GPIO_Output:是配置输出 配置GPIO输出我们点击GPIO_Output 然后选择你要的GPIO会发现红色框那边有几个参数可以进行配置 配置大类 可选选项 GPIO output level(初始输出电平) LowHigh GPIO mode(GPIO 输出模式,核心选型) Output Push Pull(推挽输出)Output Open Drain(开漏输出) GPIO Pull-u
关于HAL库STM32的标准库其实已经停更仅支持早期系列(F0/F1/F2/F3/F4/L1)但是因为标准库的影响够远,很多国产的芯片也接近标准库的风格去开发 对于新时代来说要开发stm32更加建议的是HAL库和LL库 HAL更加注重效率,开发更简单 而LL库更加接近底层寄存器开发,所以难度会大一点 我们这里介绍的是HAL开发 cubemxSTM32cubemx是STM32发布新的嵌入式开发工具他主要是可以用图形化直接快速配置快速生成代码工厂文件,不用像以前一样要慢慢的手动导入各种库 关于STM32cubemx下载: 官网下载 安装不能有中文路
关于UART UART是一种全双工,异步,点对点的通讯协议他主要靠设备之间互相约定传输频率没有固定的时钟信号来确认同步而且设备之间没有明确的主从之分连接最少只要3个线TX — RXRX — TXGND — GND 设备自己解决供电问题就可以通讯了 参考代码 串口外设 TX 引脚 RX 引脚 RTS 引脚 CTS 引脚 备注 USART1 PA9 PA10 PA12 PA11 最常用,挂载 APB2 高速总线,支持硬件流控 USART2 PA2 PA3 PA1 PA0 挂载 APB1 低速总线,支持硬件流控 USART3 PB10 PB11 PB14 PB13 挂载 A
ADCADC其实就是单片机采集电压 这是STM32内部的ADC VREF+ 内部默认接 VDDAVDDA 一般接 3.3V所以默认最大采集电压 = 3.3V 然后STM32F103他的ADC是12位也就说最大是0-4095 参考函数GPIO设置模拟输入12345GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_-X;GPIO_InitStructure.GPIO_Speed = GPIO_Spe