配置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
PWM是什么 这就是PWM 所以说pwm也就是波不断上上下下那么要实现准确的间隔那么还是离不开定时器 对的,这里的捕获和比较基本就是给PWM准备的 我们只需要CNT和CCR比较比如CNT运行到设置的CCR值就翻转但是CNT记满会自动复位也就是一次轮回这个记满是由(ARR+1)决定的 但是CNT是由CK_PSC(输入时钟)和PSC(预分频器)决定的 为什么用CK_PSC而不是CK_INK因为他还可以由外部时钟,或者内部其他时钟决定 也就是CNT=CK_PSC=CK_PSC/(PSC+1)CNT是频率转换成时间单位就是1/[(CK_PSC/PS
我们还是继续研究通用定时器我们主要是研究定时器的从模式什么是从,就是定时器接受到其他信号来做出反应 这个信号可以是外部给的也可以是内部给的 定时器触发外部触发 我们上一篇看过了STM定时器可以通过TIx捕获TIX捕获会经过TIxFPx通道然后我们根据图片,刚刚好TI1FP1和TI2FP2可以到从模式控制器 内部触发 我们看图片,发现他还有ITRx和TI1F_ED ITRx是内部定时器发出的信号他是内部定时器CNT溢出复位后才会产生一次TRGO信号 TI1F_ED是内部定时器的通道接收到了边沿信号就会产生一次信号 参考代码函数外部触发配置基本上来说,无论是ETR还是TIX 前面都是正常的配置和
上期我们讲了STM32标准库基本定时器 这个图看起来很复杂其实也就这样(你知道我想说什么) 上期我们说过通用定时器里面包含了基本定时器所以我们上一期其实是只用了这个部分 然后本篇我们先讲的通用定时器计数因为定时器说白了就是记录时钟的信号。如果改成外部的话那么就可以记录外部的波的数据 我们先说第一个方法使用ETR 方法1:ETR ETR主要用这通用定时器的这些部分 但是STM32的ETR引脚不多虽然理论上每个通用定时器和高级定时器的CH1都是ETR但是可能因为封装不同所以没这里用STM32C8T6举例 点击展开完整图片 他也就PA12(TIM1) PA0(TIM2)有ETR所以资源还