微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机串口改变波特率就不能正常传送,求解释

单片机串口改变波特率就不能正常传送,求解释

时间:10-02 整理:3721RD 点击:
单片机串口传送 晶振是24M的除了9600波特率,其他波特率从串口调试助手发送到单片机再发送到串口调试助手里的字符均不能正常显示在串口调试助手里(变化了),换成11.0592的我试了一下9600 和14400能传送,其他的也不能正常显示。改成T1做波特率发生器也基本是这个情况,请高手们帮我解释一下,我用的是stc89c52的单片机

  1. #include<reg52.h>
  2. void main(void)
  3. {
  4. RCAP2H=(65536-11059200/32/14400)>>8;//这里不给TH2和TL2赋同样的初值可以吗?
  5. RCAP2L=(65536-11059200/32/14400)&0Xff;
  6. T2CON=0X34;

  7. SCON=0X50;
  8. ES=1;
  9. EA=1;
  10. while(1);
  11. }
  12. unsigned char temp;   
  13. void serial_int(void) interrupt 4
  14. {
  15. if(RI)
  16. {
  17. RI=0;                                                                                                                                                                                                                                                                                                                                                   
  18. temp=SBUF;
  19. SBUF=temp;
  20. while(!TI);
  21. TI=0;
  22. }
  23. }

复制代码


求解释,兄弟们

本人已解决,谢谢

12M的主要是频率跟串口的标准不太一致,太高的频率不支持,
小编的问题出在哪里?说出来大家学习一下

小编是怎么解决的,我也遇到这个问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top