第一节:CubeMX配置串口、IO输入、看门狗外设
使用设备及工具
软件:
- CubeMx
- Keil5
- 串口收发工具 XCOM
- 串口驱动 CH340
硬件:
- 以STM32F103C8T6最小系统板为例
- ST-Link
CubeMX配置底层驱动
查看CubeMX固件信息
针对首次使用的伙伴,查看自己是否已经下载对应MCU的固件包。
新建CubeMx工程
选择芯片型号,我这用的是STM32F103C8T6所以选择上图型号,如果使用其它型号注意自己手上芯片的封装等信息。
RCC(Reset and Clock Control)模块使能
调试口配置
SYS选项栏中设置Debug为Serial Wire,使PA13 PA14作为下载调试功能,可防止未设置该功能而复用成其它功能导致下载程序异常。
GPIO口输出配置
- 普通IO输入
- 选择需要配置的GPIO口,配置为普通输入模式。
- 对输出模式IO口进行配置
由于我的电路是外部本身有一个上拉电阻,悬空处理效果一致。
注:MCU内部上拉电阻查看参考手册典型值为40K如下图,通常我们不关注次项内容
- 选择需要配置的GPIO口,配置为普通输入模式。
- 中断模式输入
1.如需要处理紧急事件,可将IO输入改为IO中断,配置方法和前两步类似,更具项目情况来定是否采用中断模式。
2. 开启中断
UART(Universal Asynchronous Receiver/Transmitter)通用异步收发器配置
- 配置串口模式为异步收发,可根据项目需要配置波特率和校验方式。
- 开启串口中断,如需减少CPU的资源消耗,可打开DMA模式,此文不做介绍
- 配置各个中断的的抢占优先级和子优先级(由于当前项目没有明显的优先级要求,保持默认)
打开硬件看门狗
- Prescaler = 4, Reload register(RL) = 4095(0xFFF)。
- Independent watchdog block diagram 独立看门狗框图。
- 由于分频为4,RL设置为4095(0xFFF),IWDG时钟 = 40KHz根据下列表格得出看门狗超时时间为409.6ms。
时钟树配置
- 前面我们在RCC模块配置中开启了低速内部时钟和高速外部时钟。
- 低速内部时钟通常是指LSI(Low-Speed Internal)时钟源,它可以用于低功耗时钟(LPTIM、LPUART等)以及独立看门狗(IWDG)和实时时钟(RTC)模块。需要注意的是,RTC模块在使用LSI时钟时,需要先开启RTC外设时钟,并配置RTC预分频器和后分频器,以及RTC时钟源。
- 高速外部时钟一般是指HSE(High-Speed External)时钟源,可以通过外部晶振提供,然后通过PLL(Phase-Locked Loop,锁相环)进行倍频得到系统时钟。系统时钟可以进一步分频得到各个总线的时钟,包括AHB总线和APB总线。
配置代码生成文件,将.c .h分离开
配置项目名称和生成路劲
点击右上角generate code即可生成配置代码。