为什么在做串口通讯中有些字符可以,有些字符就做不了通讯呢?
为什么在做串口通讯中有些字符可以,有些字符就做不了通讯呢? 串口通信,传送一个字节,0-255,任何都行.还是基础不牢固,"什么是文本文件"这样的相关知识和概念不清楚. 我觉得我说的的确不清楚,可能马老师没有太理解我的意思,并不完全是通讯的问题!
我的程序是这样处理的,MCU上电以后给电脑发一个讯号:"Link OK",然后就等待电脑按键,每次按键后,MCU收到以后,就再发射收到的按键
值给电脑,电脑将它显示出来。
我知道文本文件是用ASCII码保存的,我也知道是通讯中发射和接收都是以ASCII码为基础,像如果要显示一个数字,就必须再加48,然后发射
给电脑。
我现在的困惑是这样,我发送一个字符,没有问题,发送和接收都可以,因为我在仿真的时候看了变量。
我改了程序,单独发了一个05或者142给计算机,然后计算机没有办法显示出来,显示出来的是一个问号!
后来,我一个一个的试,又发现很多符号都显示不出来。
所以,才有此问题,我的程序是没有问题的,0-255发射都是可以的。
不知道马老师对这个能再帮我解答下吗? 05的ASCII是什么?142的ASCII又是什么?都没定义怎么能显示!!!可以设为16进制查看发送结果。 我太理解你的问题在哪里了,所以并没有叫你改程序,而是把与"文本文件"和ASCII码的相关知识学习巩固. 3楼的列火狂龙没有明白我的意思!
05和142就是一个ASCII码,它就代表一个符号了,再定义能起什么作用。
另外,对于c语言来说,用10进制和16进制对于编译器其实是没有区别的。
好了,我找了相关资料看了,谢谢马老师帮助!
以下是本站的一个链接,就是之前马老师谈文本的一个话题,希望大家不要像我一样走了一个大弯路。
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=752335 05和142就是一个ASCII码,它就代表一个符号了,再定义能起什么作用。-----因为ASCII表里的十进制5代表字符"ENQ" 142代表什么东东?根本就没有定义!!!,你去查一下ASCII码表吧。
01,142 串口调试助手以ASCII方式是显示不出来的,要以16进制方式显示!!!
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_191456.JPG 我觉得plc_avr 列火狂龙好像很愤怒一样!我不知道你愤怒的意义在哪里??
我都已经说了你没有明白我的意思了:我是在用MCU和电脑直接做了个通讯,然后电脑显示。所以,我对于我来说05和05H是没有区别的,我不知道你都没有搞懂我的想法,然后弄一个大图纸上来是想表达什么?
你知道MCU发一个02给电脑,然后电脑会显示一个什么吗?用你的理解是不是是STX,然后你用调试工具显示的是30 32。
但你知道用我的方法是可以显示什么吗?可以显示个黑色的小笑脸出来!
我想问下plc_avr 列火狂龙:你用“开始”菜单那里面的应用文件做过通讯吗?
我觉得是个误解问题,我这次解释的很清楚了,你明白了吗?
马老师已经说的很好了,是我没有明白ASCII和文本的一些知识造成的。我现在明白了,谢谢。 SORRY,SORRY,当我什么都没说好了。 没有,只是觉得还是解释清楚比较好。
免得你用3个惊叹号的,如果我语气有冒犯的地方,Sorry!
页:
[1]