原创 51单片机串口发送汉字显示乱码问题

2012-11-13 22:42 4485 5 8 分类: MCU/ 嵌入式

 

      前一段时间做蓝牙通信,单片机串口发送汉字总显示乱码,代码如下:
      //发送一个字节
      void SendByte(unsigned char dat)
      {
           SBUF = dat;
          while(!TI);
          TI = 0;
      }
 
       //发送一个字符串
      void SendStr(unsigned char *s)
      {
          while(*s!='\0')         
          {
              SendByte(*s);
              s++;
          }
      }
      在main函数里调用 SendStr("当前数据为:");
      观察串口调试助手显示是一堆乱码,然而将汉字改为英文字符或数字据后显示是正常的,这说明发送部分的程序应该是没有问题的,后来逛逛论坛终于找到了解决办法——编译器的BUG!如果你还是Keil2或Keil3用户,不要再怀疑自己的代码了,这是低版本Keil编译器的一个漏洞,使用修正版的Keil4 V9.05编译生成HEX文件就可以解决。下面是Keil 4V9.05的下载地址,附注册机,希望对遇到同样问题的朋友可以有所帮助。
下载地址:
1.http://download.csdn.net/detail/rtgchym/4156118
 
2.http://dl.dbank.com/c0lbyrebao
PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户1394520 2013-5-7 16:01

学习了,感谢

522055627_965806464 2013-4-28 11:33

下载下来看看学习一下

用户1673212 2013-4-18 14:14

hao ding ding !!

用户432270 2012-11-1 10:44

为什么我的还是乱码啊 求指教!

用户432270 2012-10-31 17:11

我还没有解决啊

用户1590030 2012-9-15 20:15

haohahooahhoa

用户377235 2012-4-10 10:06

这个好用,问题解决了
相关推荐阅读
用户324903 2012-11-14 09:52
Android中的CheckBox
         Android中提供了一个多选组件CheckBox,实现多选操作,因为可以多选,所以他区别于RadioButton没有了组的概念,要监听用户操作的话需要对每一个CheckBox监...
用户324903 2012-11-13 22:43
剖析单片机C语言软件复位
          众所周知,单片机在上电复位,或程序正在执行时候按下复位键,PC指针就会指向0地址,程序从0地址处开始执行,这是硬件复位,我暂且称它为“硬复位”,因为下文所讲的是程序在运行过...
我要评论
3
5
关闭 站长推荐上一条 /3 下一条