|
|
|
|
|
|
|
我在STM32F030下使用SP3485接口芯片配置RS-485总线波特率为1200bps。在使用过程中我发现程序可以接收数据但无法发送数据。
最终我发现问题出在程序的发送部分
原始发送部分的代码如下:
艏先我上拉SP3485的RE_DE引脚以使芯片进入发送模式,接下来进行发送最后下拉RE_DE引脚进入接收模式。这在逻辑上完全说得通并且在高波特率下并沒有出任何问题。然而在低波特率下这会直接导致数据发不出去。
出现此问题的原因在于尽管程序已经执行到REDELOW这一行,但实际上外设並没有完成发送而程序又强制的拉低了RE_DE引脚致使芯片进入到接收模式。
解决办法我想你们已经知道了
在1200bps下发送一个bit大约需要830us,发送一個byte需要约6.6ms我有30个byte要发那么就需要198ms。对于一个主频48MHz的单片机来说这实在太慢了!
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。