stm8串口波特率设置需要配置寄存器BRR1和BRR2.编程需要注意的是对BRR1进行幅值操作会更新波特率计数器,所以编程一般先对BRR2进行幅值,如下
UART1->BRR2=0x00; //波特率设置
UART1->BRR1=0x0D; //2M 9600
但是寄存器赋值有个坑,stm8串口波特率寄存器并不是按照计算出来的数值依次赋值的。stm8串口波特率计算赋值举例:假设主时钟为2M,目标波特率为9600,计算的出分频为2M/9600=208,换算为16进制为0x00D0。由于写入格式比较特殊,参考中文手册描述如下:因此BRR2=0x00;BRR2=0x0D;