STM8L 串口波特率太高不行

2019-07-19 20:10发布

大家好,最近在用了STM8L 的板子,这款板子用的HSI,内部16MHz的RC振荡()。试了下串口57600,38400,19200,9600接到电脑的串口调试助手都可以实现通信,但是调到115200的时候,就出错误,接收和发送都变成了乱码。
程序发的是0XAA,用示波器抓了一下

请问下有没有人遇到过这样的问题?需要怎么样修正才能达到115200的波特率呢?

这个波形是不是有点不正常呢?方波有点像正弦波了,而且宽度不太一样
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
宋小六
1楼-- · 2019-07-20 17:23
 精彩回答 2  元偷偷看……
zhxzhx
2楼-- · 2019-07-20 20:49
内部,115200,和gps模块,ublot的长期运行没有问题
但是遇到过和gprs模块,低温下(东北户外,估计零下20)不行的现象。但同时和gps好用。(就是把经纬度通过gprs发出去)
tashalee
3楼-- · 2019-07-20 22:00
  //配置USART参数
    USART1_CR1=0x00;
    USART1_CR2=0x00;
    USART1_CR3=0x00;
      //☆ 必须先写BRR2
    USART1_BRR2=0x01; // 2M/115200=17.34 =17= 0x11 → 0110 →【 br1=01 br2=01 】   
    USART1_BRR1=0x01;

    USART1_CR2=0x2c;//Rx Tx Interrupt Enable

void USART1_SendStr(unsigned char *Str)
{
     while(*Str!=0)
     {
         USART1_DR = *Str;
         Str++;
         while(!(USART1_SR&0x80));
     }
}


我使用的内部时钟/8   代码你看看
tashalee
4楼-- · 2019-07-21 01:27
 精彩回答 2  元偷偷看……
ROCK
5楼-- · 2019-07-21 03:24
内部RC16M,串口通信1M,收到数据并转发没有问题,但是发现写BBR2和BBR1的时间超过了10us,导致转发的时候,前导时序总是出错。各位大神有什么好的办法解决这个问题
正点原子
6楼-- · 2019-07-21 07:04
 精彩回答 2  元偷偷看……

一周热门 更多>