RS232发送数据问题

tjuluanshiwei 2008-10-27 11:30:06
我用单片机IO口模拟RS232通讯,单片机给PC机传数据。但是我不知道PC机的串口数据是如何读取的,因此我就不知道如何发送0和1.比如,串口采用的N8.1格式的数据吗?要发送一个数字或者一个字母(如A),发送的是ASCII码吗?先发送低位还是高位?能具体写一下发送的0,1序列码? 多谢各位高手啊!!!
...全文
481 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishuai633 2008-11-06
  • 打赏
  • 举报
回复
应该发送的是ASCII码
gooogleman 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 guetcw 的回复:]
楼主不要还没做就先问一堆没用的问题。
但是我不知道PC机的串口数据是如何读取的,因此我就不知道如何发送0和1.
这个需要你管吗?,这是上位机软件做的事。你不知道如何发送0和1,看RS232协议标准。你要摸拟,波特率要控制得很准,否则收到的是一堆乱码。

比如,串口采用的N8.1格式的数据吗?
数据格式有几种,具体用哪种就看上位机的串口通信软件用的是哪种,一般的串口通信软件几种可兼容,可选的,先去做了,不行再…
[/Quote]

有理
qiu5208 2008-11-04
  • 打赏
  • 举报
回复
一般单片机和pc就内部集成了处理电路UART

发送是按字节发送的,

发送方直接发送"A",就是发Ascii码,uart就把A的AScii转换二进制发送.

接受到的也是"A"

zhujinqiang 2008-10-28
  • 打赏
  • 举报
回复
网上搜个 串口助手 软件,调试时很有用的
guetcw 2008-10-28
  • 打赏
  • 举报
回复
楼主不要还没做就先问一堆没用的问题。
但是我不知道PC机的串口数据是如何读取的,因此我就不知道如何发送0和1.
这个需要你管吗?,这是上位机软件做的事。你不知道如何发送0和1,看RS232协议标准。你要摸拟,波特率要控制得很准,否则收到的是一堆乱码。

比如,串口采用的N8.1格式的数据吗?
数据格式有几种,具体用哪种就看上位机的串口通信软件用的是哪种,一般的串口通信软件几种可兼容,可选的,先去做了,不行再问。

要发送一个数字或者一个字母(如A),发送的是ASCII码吗?
如果在你的代码里出现这样的
UART = ’A‘;
那么从串口发出的的数就是ASSCII码0x41(16进制)。
lbing7 2008-10-28
  • 打赏
  • 举报
回复
我用单片机IO口模拟RS232通讯,单片机给PC机传数据。
用定时器来控制波特率,网上能搜到源码

但是我不知道PC机的串口数据是如何读取的,因此我就不知道如何发送0和1.
PC串口我也不太了解,由高人来讲吧

比如,串口采用的N8.1格式的数据吗?

要发送一个数字或者一个字母(如A),发送的是ASCII码吗?
如果你直接甩一个A,那就就是ASCII码,其它的就请LZ踹磨一下ASCII码和2进制序列的关系吧
我个人的感觉就像是:房子和砖头的关系

先发送低位还是高位?能具体写一下发送的0,1序列码?
LS说了,代低位优先
那LZ就把65这个十进制数转换成二进制,然后再从低到高倒一下,就是这个序列了
sdql213 2008-10-28
  • 打赏
  • 举报
回复
RS-232采用负逻辑,逻辑1电平表示电压在-15-- -5V范围内,逻辑0表示电压在+5--+15V范围内。数据最高传输速率为20KB/s,通信距离最长为15m。
RS-232是以串行方式按位传输数据的。数据格式为 1位起始位,5-8位数据位,附加1位校验位和1到2位停止位。总共11位。
snow_haoxue 2008-10-28
  • 打赏
  • 举报
回复

单片机不是很懂,现在直接在硬件终端做开发,串口只是负责传输数据的,具体数据的格式怎么样式根据硬件的物理特性决定的,不同的格式的数据需要对应具体的转换工作后才可以使用,但最终能过使用的数据一定是ASCII码。数据的传输,应该是从低位开始的吧,至少我读取硬件传来数据是按照这个方式的,并且现在已经OK了

27,383

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧