共2条
1/1 1 跳转至页
单片机串口通讯问题,求救高手

问
我产品用8052单片机在串口通讯上,波特率为9600,采用通讯方式1,一位起始位,8位数据位,一位停止位。产品对产品的通讯数据正确(仿真器上看)。但是在和计算机通讯时,通过232转485接口,用两根线接到我开发的产品上,数据有规律的出错,而且用了多个串口调试工具都出现同样的错误数据,开始怀疑是232转485不行,换了几个232转485结果都一样。出现错误的规律是底4位全正确,高四位不对,比如我发10H,电脑串口调试工具接收到30H.
以下是错误规律(低位0随便换都正确)
发送 接收
10H 30H
20H 40H
30H 70H
40H 80H
50H B0H
60H C0H
70H F0H
80H 00H
90H 30H
A0H 40H
B0H 70H
C0H 80H
D0H B0H
E0H C0H
F0H F0H
00H 00H
请高手帮助! 答 1: 波特率不匹配吧? 答 2: 程序上是9600程序上是9600,电脑上串口调试也用的9600呀,我改用其它的波特率接收数据错得更厉害,郁闷呀。 答 3: 奇偶校验设置不对? 答 4: 我设置都是无奇偶效验请问楼上大哥要怎么设置? 答 5: 你设置的对吗(f0 = 11.0592 MHz ):TH1 = 0FDH ; /* Timer1 = 9600 bit/S */
TL1 = 0FDH ; /* Timer1 = 9600bit */
不是其他原因。 答 6: 晶振多少???? 答 7: 找个示波器看一下波形就真相大白了 答 8: TO:楼上晶振是11.0592,
PCON=80H
SCON=50H
TH1 = 0FDH
TL1 = 0FDH
都对呀,没有示波器,看不了。 答 9: A、B线有没有搞反?从数据来看并不能确认你说的“低四位都正确”。
你发“55h,0aah”之类的试试? 答 10: to:楼上发55H收的是B5H,发0aaH收的是4aH.A,B线我没有接反,我正反都试过。 答 11: 波特率错了根据你PCON的设置,波特率应用以下公式计算:
BAU-RATE = (11.0592MHz/12)/(256-TH1)/16
TH=FA,TL=FA
如果PCON设为00,则TH=FD,TL=FD 答 12: to:楼上我写错了,
晶振是11.0592,
PCON=80H
SCON=50H
TH1 = 0FAH
TL1 = 0FAH
是这样设置的 答 13: 程序有问题接收bit7,bit6,bit5,bit4=发送bit6,bit5,bit4,bit4 答 14: 嘿嘿检查一下你的485芯片和电路 答 15: 我在用ARM时出现过这种问题,模式不对,但不知道你是不是这原因 答 16: PC的设置对吗?用的哪个调试软件? 答 17: to:阿南可以说清楚点吗?或者留个QQ号我想请教一下。PC设置应该没有问题,调试软件都是在网上下载的,换过好多了。 答 18: 波特率有轻微的差异。常见错误。试着更换一下波特率发生器的时钟。 答 19: 我认为是软件的问题.你的扳子上有显示吗?试试自己的两块板子之间的通信.再说.
我认为是软件的问题.
以下是错误规律(低位0随便换都正确)
发送 接收
10H 30H
20H 40H
30H 70H
40H 80H
50H B0H
60H C0H
70H F0H
80H 00H
90H 30H
A0H 40H
B0H 70H
C0H 80H
D0H B0H
E0H C0H
F0H F0H
00H 00H
请高手帮助! 答 1: 波特率不匹配吧? 答 2: 程序上是9600程序上是9600,电脑上串口调试也用的9600呀,我改用其它的波特率接收数据错得更厉害,郁闷呀。 答 3: 奇偶校验设置不对? 答 4: 我设置都是无奇偶效验请问楼上大哥要怎么设置? 答 5: 你设置的对吗(f0 = 11.0592 MHz ):TH1 = 0FDH ; /* Timer1 = 9600 bit/S */
TL1 = 0FDH ; /* Timer1 = 9600bit */
不是其他原因。 答 6: 晶振多少???? 答 7: 找个示波器看一下波形就真相大白了 答 8: TO:楼上晶振是11.0592,
PCON=80H
SCON=50H
TH1 = 0FDH
TL1 = 0FDH
都对呀,没有示波器,看不了。 答 9: A、B线有没有搞反?从数据来看并不能确认你说的“低四位都正确”。
你发“55h,0aah”之类的试试? 答 10: to:楼上发55H收的是B5H,发0aaH收的是4aH.A,B线我没有接反,我正反都试过。 答 11: 波特率错了根据你PCON的设置,波特率应用以下公式计算:
BAU-RATE = (11.0592MHz/12)/(256-TH1)/16
TH=FA,TL=FA
如果PCON设为00,则TH=FD,TL=FD 答 12: to:楼上我写错了,
晶振是11.0592,
PCON=80H
SCON=50H
TH1 = 0FAH
TL1 = 0FAH
是这样设置的 答 13: 程序有问题接收bit7,bit6,bit5,bit4=发送bit6,bit5,bit4,bit4 答 14: 嘿嘿检查一下你的485芯片和电路 答 15: 我在用ARM时出现过这种问题,模式不对,但不知道你是不是这原因 答 16: PC的设置对吗?用的哪个调试软件? 答 17: to:阿南可以说清楚点吗?或者留个QQ号我想请教一下。PC设置应该没有问题,调试软件都是在网上下载的,换过好多了。 答 18: 波特率有轻微的差异。常见错误。试着更换一下波特率发生器的时钟。 答 19: 我认为是软件的问题.你的扳子上有显示吗?试试自己的两块板子之间的通信.再说.
我认为是软件的问题.
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 |