2000分 请教几个单片机串行通信的问题 (高手进)

先谢谢各位有时间帮我解答问题,看在我从来都认认真真回答大家的问题,希望大家也认认真真回答我的问题,以后这个帖子对别人也会有用,分数只要我觉得满意,不止2000分,但一定要... 先谢谢各位有时间帮我解答问题,看在我从来都认认真真回答大家的问题,希望大家也认认真真回答我的问题,以后这个帖子对别人也会有用,分数只要我觉得满意,不止2000分,但一定要说在点子上,小弟在这里先行谢过。 我最近在做单片机的课题,用51控制指纹识别模块SM-6(杭州中正的),其实与指纹识别没有任何关系,就是串行通信的问题。我用的是汇编语言,51与模块是通过RS-232连接,模块与上位机通讯,对命令、数据、结果的接收和发送,都采用数据包的形式进行。 数据包格格式: 包标识 ,地址码保留字 , 包长度 ,包内容(数据) , 校验和 通讯波特率: 57600bps 单片机晶振 11.0592MHZ 这是最简单的一段模块与单片机通讯过程,来源于模块自带说明书: 1:上位机发指令: 01H +0000H + 01H + 03H + 0005H 2:模块发出应答: 收包正确,在100mS 内(典型时间2mS)应答 8181H ,继续下一步。 收包错误,在100mS 内应答 8282H 或8383H ,退出流程。 我的问题就在上面这些内容,问题是: 1. 单片机的初始值TL1是不是#0FEH,我算出来是这个,但不明白SMOD=1时,波特率倍增是啥意思,如果可以的话,给我说明一下理由。 2. 什么是数据包呀,搞了好几天都没明白,在上诉 《1:上位机发指令:》中,为啥有的是2位十六进制数,有的是4位十六进制数,那发数据,是0005H 而且下边应答8181H也是个4位十六进制数,我就想问这是个数呀,还是个数据包,就这个过程,我就指的第一步到第二步的程序咋编,要汇编语言,要准确,我就要看看数据包咋发送,分数不是问题。 3.如果我把数据包发出去,就是第一步,等应答字8181H,这个过程,单片机该怎样收数据,是该收数据包,还是直接收,要程序。 就这三个问题,如果哪位高手你搞过类似的东西,例如控制其他的模块,请注明你搞过这类东西,我就单线和你联系了,并把您的QQ附上,我登门拜访,我其实就要那么一小段程序,要有注释。小弟在此谢过各位。 展开
 我来答
圣菊黄芊芊
2019-07-12 · TA获得超过4083个赞
知道大有可为答主
回答量:3168
采纳率:31%
帮助的人:157万
展开全部
我曾是这里的员工,不过现在不在杭州了。可以把我以前做的项目代码给你找找。
第一个不知道你在说什么。
第二个:若是2位16进制,你完全可以用0补成4位;关键是在切换成二进制代码时候,要符合一个特定长度,这就是协议的作用(上位机和模块同样也用协议通信);数据包说明里已经给出在第四个段中的数据应该就是0005H或者8181H。说白了就是一串数字,其中xx位到yy位是这个数就行了,其他位的数,例如校验和,需要用程序算出来在发包前填在那里。
第三个:给你程序你就明白了。就是个普通c51串口收发的程序。
发数据要定好,全发4字节或全发2字节,这就是你在制定通信协议。我没有QQ,邮箱吧:1million@126.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式