找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3195|回复: 6
收起左侧

单片机串口发送显示乱码

[复制链接]
ID:438771 发表于 2019-9-7 21:02 来自手机 | 显示全部楼层 |阅读模式
为什么下载一下程序是,在串口接受数据上显示乱码的,请大佬们指教,我想从单片机发送到上位机上显示
  1. #include <REG52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar dis[]={0,0,1,1,0,0};
  5. /*****n(ms)延时子程序*****/
  6. void delayms(uint ms) //延时ms
  7. {
  8. uchar i;
  9. while(ms--)
  10. {
  11. for(i=0;i<120;i++);
  12. }
  13. }
  14. /*****主程序*****/
  15. void main()
  16. {
  17. int i;
  18. TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
  19. TH1=0xFD;//波特率9600
  20. TL1=0xFD;
  21. SCON=0x50; //设定串行口工作方式
  22. TR1=1; //启动定时器1
  23. while(1)
  24. {
  25. for(i=0;i<6;i++)
  26. {
  27. SBUF=dis[i];
  28. while(!TI); //等特数据传送
  29. TI=0; //清除数据传送标志

  30. } delayms(500);
  31. }
  32. }
复制代码
回复

使用道具 举报

ID:275826 发表于 2019-9-8 08:39 | 显示全部楼层
估计是你的晶振频率不对
回复

使用道具 举报

ID:282850 发表于 2019-9-9 09:35 | 显示全部楼层
查检上位机的波特率是否9600,检验位是否对。试完如果还是乱码,查一下晶振是否与程序设想的一致,先用11.0592Mhz,如果是STC,下载时一定把默认的内部RC改为外部晶振!!切记
回复

使用道具 举报

ID:93224 发表于 2019-9-10 09:59 | 显示全部楼层
看看你的晶振是否是11.0592MHz,然后看看接受端的波特率是否是9600
回复

使用道具 举报

ID:610092 发表于 2019-9-10 16:46 | 显示全部楼层
逻辑分析仪还是示波器看看,估计本质还是时钟配置问题
回复

使用道具 举报

ID:610139 发表于 2019-9-10 18:05 | 显示全部楼层
可能波特率不对显示乱码。
回复

使用道具 举报

ID:199249 发表于 2019-9-15 15:31 | 显示全部楼层
工作模式是否与上位机接收模式一致   ,比如说有没有停止位起始位检验位  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表