[STM8] STM8串口波特率57600时,晶振用多大,老是有误差,要误差为0

[复制链接]
6011|4
 楼主| car_software 发表于 2012-8-28 12:06 | 显示全部楼层 |阅读模式
STM8串口波特率57600时,晶振用多大,老是有误差,要误差为0才行。
figo20042005 发表于 2012-8-28 13:07 | 显示全部楼层
误差为0啊,感觉好高
捡漏王子 发表于 2012-8-28 13:33 | 显示全部楼层
波特率肯定有误差,只要能承受就行
晶振用多大关系不怎么大,看你使用的总线频率
 楼主| car_software 发表于 2012-8-28 14:15 | 显示全部楼层
注:我用的是8M晶振,当串口波特率为9600或38400,通信正常, 为57600发送数据出错,
regsist设置如下:

void Uart1_Init(void)
{
// 8M/9600  = 833.33 =0x0341    // BAUD_RATE_9600
// 8M/38400 = 208.33 =0x00D0    // BAUD_RATE_38400
// 8M/57600 = 138.88 =0x008A    // BAUD_RATE_57600   //138(0x008A)或139(0x008B),发送数据会出错,2012-8-28 11:06:49
// USART_BRR1:  11~4   USART_BRR2: 15~12 3~0

#ifdef UART1_BAUD_RATE_9600        
        USART_BRR1=0x34;
        USART_BRR2=0x01;
#elif defined UART1_BAUD_RATE_38400        
        USART_BRR1=0x0D;
        USART_BRR2=0x00;
#elif defined UART1_BAUD_RATE_57600        
        USART_BRR1=0x08;
        USART_BRR2=0x0A;
#endif
               
        USART_CR2=b0010_1100;   // bit5->1 Enable RX interrupt    bit3->1 Enable TX     bit2->1 Enable RX  Spec/Page305
}

补充:其它没有设置的regsist,均为上电默认值;
不知道取啥名 发表于 2020-12-30 22:20 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

44

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部