四、串口编程对于stm32F103,USART1的TX和RX分别是PA9和PA10,若开启了REMAP,则可以映射到PB6和PB7
USART1映射关系如下表USART2和USART3映射关系如下1.重映像只适用于100和144脚的封装USART的GPIO设置如下表最基本的串口编程过程:开启串口时钟,设置IO口模式,串口复位,配置波特率、数据位长度、奇偶校验位,开启发送、接收使能,开启接收中断使能,设置接收中断分组和优先级,编写接收中断函数
STM32F103Rx共有3个串口,其中USART1接APB2,其它2个接APB1
USART1的寄存器地址是:0x40013800-3BFF,USART2的寄存器地址是:0x40004400-47FF,USART3的寄存器地址是:0x40004800-4BFF
每个串口都有自己独立的配置寄存器(SR,DR,BRR,CR1,CR2,CR3,GTPR)配置过程如下:APR2ENR使能寄存器APB2RSTR复位寄存器串口寄存器编程串口时钟使能串口1是在RCC-APB2ENR的第14位,其它串口在APB1ENR串口复位串口1是在RCC-APB2RSTR的第14位,写1复位,写0结束复位串口波特率设置Fck是外设时钟,对于USART1是PCLK2,即APB2上的时钟通过fck和波特率,计算得到USARTDIV并设置到USART_BRR中,BRR中低4为是小数部分,高12位是整数部分
定义字长USART_CR1的第12位,0:8个数据,1:9个数据定义停止位USART_CR2的第12、13位,00:1个停止位,10:2个停止位接收和发送使能USART_CR1的第2、3位(RE、TE)串口中断使能USART_CR1的第5位:RXNEIE接收缓冲区非空使能,即USART_SR中ORE或RXNE为1时USART-CR1的第8位:PE中断使能,即USAR