请问AT系列单片机和STC系列单片机和485通讯有什么不同的地方需要注意么

lc123300798   2010-3-10 11:27 楼主
请问AT系列单片机和STC系列单片机和485通讯有什么不同的地方需要注意么.我的程序用AT89S52就可以通信,但是用了STC11F32XE就出现乱码,这是为什么呢?请各位高手指点迷津。谢谢。

回复评论 (8)

你尝试一下将STC单片机输出IO设置推挽输出,并且加下拉电阻,保证上电时候电平稳定在高。
我记得STC的不这样做是驱动不起来的。
点赞  2010-3-10 11:43
对于对IO,有很多单片机的IO管教是OD或者OC门,驱动能力不够。
此时 需要 加上拉(是上拉电阻),从而保证其能输出稳定的高电平 。

楼主最好测试下STC单片机出现乱码时,对应的波形,看看信号对应的幅度和波形 是否满足相关要求。
点赞  2010-3-10 14:21
LZ看一下STC的串口时钟配置的问题

先用PC或者啥第三方工具看一下STC的波特率有没有问题

如果是直接的源程序移植,STC的时钟默认情况下不是标准51的配置
点赞  2010-3-10 14:49
可是有一个奇怪的现象,在主程序里发送或者是定时中断中发送都可以正常发送,串口调试助手显示,可是在串口中断中发送就出现错误,因为不能在线调试,我怀疑STC接到的数都有问题。
点赞  2010-3-13 10:48
因为使能端我用的是P3.2,但是上电复位值是1,我怀疑我将EN拉低的时候,因为驱动能力不强,其实并没有真正的拉低,会不会啊?
点赞  2010-3-13 10:50
有通信速率快慢,驱动力不够等一些问题,可以用示波器看看,最好看看STC的datasheet对比一下一些参数,然后进行设置,就OK了.
点赞  2010-3-14 14:48
我也不知道哪里出了问题,总是我觉得是接收出现了问题,但是不知道为什么会这样。AT89S52对于485一样的程序就没有问题,可是我用了STC11F32XE芯片,当然波特率设置是有改了的,232通信可以没问题,但是485通信就有问题,485的发数如果放在了主程序或者定时中断里也没有问题,但是一放到串口中断中,就有乱码了。我也不知道为什么。我用的是独立波特率发生器,我自己觉得是接收数据的时候出现了问题,我特别想知道为什么,我觉得波特率的设置应该是没有问题。请大家帮帮忙吧。
点赞  2010-3-15 09:37
引用: 引用 7 楼 jiajia2007a 的回复:
我也不知道哪里出了问题,总是我觉得是接收出现了问题,但是不知道为什么会这样。AT89S52对于485一样的程序就没有问题,可是我用了STC11F32XE芯片,当然波特率设置是有改了的,232通信可以没问题,但是485通信就有问题,485的发数如果放在了主程序或者定时中断里也没有问题,但是一放到串口中断中,就有乱码了。我也不知道为什么。我用的是独立波特率发生器,我自己觉得是接收数据的时候出现了问题,……


应该是你的串口中断处理有问题。
建议你再次审核下串口中断的初始化,以及串口中断处理函数,
另外有可能你串口中断处理函数太慢,导致下次中断来,你还没从串口中断里出来,
把通讯波特率降到最低再试试。
好好核实下你的中断对应的代码。
点赞  2010-3-15 09:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复