【Stm32学习笔记】-- 串口通讯
串口设置一般步骤: 1、串口时钟使能,GPIO时钟使能 2、串口复位 3、GPIO端口模式设置 4、串口参数初始化 5、开启中断并且初始化NVIC(开启中断时) 6、使能串口 7、编写中断处理函数 串口时钟使能:在stm32f103中,串口时钟有外设时钟使能寄存器控制。 (p.s. APB1ENR,APB2ENR) 串口波特率设置:STM32的每个串口都有独立的比特率寄存器USART_BRR,通过设置该寄存器即可配置相应波特率。寄存器各位描述如下图。 该寄存器高十六位全部设置为0,低十六位分别表示除法因子的整数部分和小数部分。 STM32串口波特率计算公式如下: 分子是给串口的时钟(PCLK1 用于 USART2、3、4、5,PCLK2 用于 USART1) USARTDIV为无符号定点数。 我们只要得到 USARTDIV 的值,就可以得到串口波特率寄 存器 USART1->BRR 的值,反过来,我们得到 USART1->BRR 的值,也可以推导出 USARTDIV 的值。 假设我们的串口 1 要设置为 115200 的波特率,而 PCLK2 的时钟为 72Mhz。这样根据上面的公式有: USARTDIV=72000000/(115200 16)=39.0625 DIV_Fraction=16 0.625=1=0X01; DIV_Mantissa=39=0X27; 这样