STM32F103VCT6串口1测试出现的问题,困扰我两天了

2019-07-14 18:46发布

请问一下STM32F10X单片机串口1调试,波特率设置115200就正常,9600就不正常,第一行会出现乱码,而且我测试了所有的波特率,从低于14400开始(包括14400)第一行就会出现乱码,是什么原因啊?(用的是正点原子的串口测试代码,不过烧录的是自己设计的板子) 波特率是9600时候不正常 波特率是115200时候正常
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
jin1173364286
2019-07-16 04:45
Aidaohuakai 发表于 2018-5-24 17:49
把代码贴出来看下

int main(void)
{
//               u8 x=0;
       
             u16 t;  
     u16 len;       
       u16 times=0;
            delay_init();
            NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
                   AT24CXX_Init();
            uart_init(9600);
            USART2_Init(115200);
            USART3_Init(9600,8,1,0);
      UART4_Init(115200,8,1,0);
            KEY_Init();
         //   BEEP_Init();  
        //    LCD_Init();
            EXTIX_Init();
  
  while(1)
if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3FFF;//得到此次接收到的数据长度
                        printf(" 您发送的消息为: ");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                               
                        }
                        printf(" ");//插入换行
                        USART_RX_STA=0;
                }
               
                {
                        times++;
                        if(times%5000==0)
                        {
                                printf(" YOUBON 串口 ");
                                printf("jinzhuocheng ");
                        }
                        if(times%200==0)printf("请输入数据,以回车键结束 ");  
                        delay_ms(10);   
                }
}
这是主函数

一周热门 更多>