vb编的串口程序向51单片机发程序收不到怎么回事

来源:百度知道 编辑:UC知道 时间:2024/05/30 00:15:10
代码如下:
dim num as integer
dim outbte(0) as byte
num=&H41
outbte(0)=cbyte(num)
mscomm1.outbuffercount=0
mscomm1.output=outbte
单片机里采用unsigned char定义的的数来接收VB的数据。但是接收老是不正确。波特率都是对的。因为可以接收到单片机发来的数据。但是就是电脑发的数据单片机接收不到。

各位大哥大姐看看是怎么回事。
单片机能接收到数据,但是是不正确的数据。

TO:37772166:
那怎么解决呢

单片机中用的是unsigned char 而VB中用的是integer,会不会发送的是整数而,接收,是当字符接收...所以显示出来不正常...
比如说,VB发的是48,单片机收到后显示的就是0..
不知道是不是这样....
望对你有帮助...
建议用串口调试助手试试...
http://emouze.com

你先用串口调试助手调试下位单片机啊,下位机工作正常再调试VB程序.
再说VB程序中,要对MSCOM控件进行初使化,设置缓冲区有多少就产生中断,然后VB发送是定时发送还是如何发送,还是一直都在发送.电脑速度快,如果单片机接收采用中断,而上位机一直在发送,那不就肯定不对了吗?
建议先调单片机接收,用串口调试精灵.
当下位机调试好了之后,再调VB程序.

我的博客上有相关的说明,你可以去看看,其实发送与接收是ASII码,也是说,想收到0,实际是30H.

在发送之前要先按一下reset键

有点乱