关于电脑与单片机的串口连接问题。谢谢

shxiongGL 2005-07-18 04:51:41
VC程序和串口调试助手通讯完全正常,,可是与单片机(80C196)通讯的时候接不到信号。
部分代码如下:
VC:
初始化的时候向单片机发送"00111111"字符串: m_ctrlComm.SetOutput(COleVariant("00111111"));
单片机的程序部分如下:
preloop: ldb stat,sp_stat ;see if there is RXD
jbc stat,6,preloop
andb stat,#10010100b;测试有无传输错误
jne prewrong
sjmp preset2ah
prewrong:rst ;wrong RXD, reset
preset2ah: ldb read_pc,sbuf ;sbuf是缓冲器,
cmpb read_pc,readyb ;readdy初始化为#3fh
jne prewrong
scall subtxd ;tell pc I am ready,给计算机发送#3fh(00111111)
然后计算机收到的字符串strTemp与"00111111"比较,符合就显示连接上。


可是没有消息过来,我先开的单片机程序。然后开的VC。
(我后来直接不管发什么,就让计算机显示出来,,可是还是显示不出。怀疑串口没连接上?还是什么原因",,,

单片机和VC程序的前一个版本(C程序)也连接完好。。。。

谢谢
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shxiongGL 2005-07-18
  • 打赏
  • 举报
回复
我又编了一个小程序测试串口连接问题:
loop: stb readyb,sbuf
subtxd_stat:ldb stat,sp_stat ;see if the data has been sent off
jbc stat,5,subtxd_stat ;bit5 (TI) = 0 goto subtxd_stat
djnz bl,loop
end ;bit5 (TI) = 1, TXD has finished
不停向计算机的串口调试助手发数据,readyb是00111111(3FH)
串口调试助手显示???????????????????????????????????????

。如果换成16进制显示,则能显示出3F 3F 3F ...
请问怎么回事?
shxiongGL 2005-07-18
  • 打赏
  • 举报
回复
。。。。VC程序该没问题,和调试助手一直通信良好。。

单片机是在等待接收计算机的信号,不停的判断标志位是否缓冲区有数进来
JOSENHUANG 2005-07-18
  • 打赏
  • 举报
回复
单片机程序是否是一直在那里等待接受计算机的信号?
JOSENHUANG 2005-07-18
  • 打赏
  • 举报
回复
你要先确定到底那个程序是正常的或不正常的,两个在一起混是比较麻烦一点调试的,如果你的VC程序有问题,那就用串口调试助手来调试不就OK了?

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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