pangbin4 发表于 2012-10-10 23:38:40

关于232串口接收50002数字,如何接收?

小弟我正在开始学AVR,目前在电脑串口发送端发送5位数,如50002给单片机,但单片机是如何接收的?
我试过进行判断是否大小50000,则灯亮,但发现如何操作,不管是大于还是小于都发现灯亮,小弟为这个问题磨了2天了,找不到答案,请各位老师帮忙解答一下!谢谢

pangbin4 发表于 2012-10-10 23:40:04

自己顶顶,希望各位老师看下

yklstudent 发表于 2012-10-10 23:40:50

拆分成两个字节发送不就可以了

pangbin4 发表于 2012-10-10 23:52:45

我高不明白为什么不能发送5位数字呢?
如不能接线5位数字呢

mingqiang 发表于 2012-10-11 10:29:46

rs232的数据位最多就是8位,一般就选8位,正好是一个字节。传送任意位数据,传送前拆成8位,接收以后再重组。你说的5位十进制数50002,实际上是一个16位的数据,拆成2个字节,高8位C3和低8位52传送就可以了。

小油猪儿 发表于 2012-10-11 10:33:28

按照你的想法发送,然后接下来看看不就知道哪里问题了,把高位直接忽略了,只发送低8位了

pangbin4 发表于 2012-10-11 21:55:31

mingqiang 发表于 2012-10-11 10:29 static/image/common/back.gif
rs232的数据位最多就是8位,一般就选8位,正好是一个字节。传送任意位数据,传送前拆成8位,接收以后再重组 ...

你说的我是想不明白,我想的是5002是数字字符吧,还是10进制数字呢

qwermhb 发表于 2012-10-11 23:45:29

进制跟位数没关系吧?5002十进制转成二进制是1001110001010

worldly_guest 发表于 2012-10-12 00:26:17

要看你发送的数字还是字符串,把发送的程序贴出来看看

mingqiang 发表于 2012-10-12 09:58:24

跟十进制数还是字符有啥关系呢,接收到以后能重组成传送前的数据就行了,接收到以后你是当字符还是数,就看你的应用了,反正我上一个程序传过来一串数据,里面有当字符看的,有当数字看的,还有每个位都表示一个按键状态的。具体到这个50002,你要按5,0,0,0,2分5个字节传过来也行,反正接收到以后还是可以组成50002,你要按2个字节c3,52来传也行,接收到以后转换成10进制数还是50002。就是有一个效率问题而已。

mingqiang 发表于 2012-10-12 10:10:33

其实楼主的问题跟单片机没啥关系。还是马老师说的有道理,学单片机是需要很多其它知识做基础的。

mingqiang 发表于 2012-10-12 10:18:19

而且楼主说接收到以后还要跟50000比较大小,那么在楼主这个应用里面就是要当作数来处理了。

pangbin4 发表于 2012-10-12 22:34:48

mingqiang 发表于 2012-10-12 09:58 static/image/common/back.gif
跟十进制数还是字符有啥关系呢,接收到以后能重组成传送前的数据就行了,接收到以后你是当字符还是数,就看 ...

谢谢大哥!我基本明白,正在想办法如何去接收,并且想办法去组合!
页: [1]
查看完整版本: 关于232串口接收50002数字,如何接收?