STM8L 串口波特率太高不行

2019-07-19 20:10发布

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

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

这个波形是不是有点不正常呢?方波有点像正弦波了,而且宽度不太一样
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
tashalee
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   代码你看看

一周热门 更多>