我测试好的舞台灯光的DMX512-1990时序模拟的收发代码例子,可能是我的外部12M晶振配置不到更好250K的波特率,误码率及接收速度
有点低。
我是利用接收线状态中断RLS_INT的BIF中断来实现BREAK的接收;清
接收缓冲。接着就用接收数据的模式来收数据。
另外,需要注意的是: 1,波特率高的时候串口的停止位一定要2个才好接收;
2,UART的TXD和RXD刚从GPIO的P30,P31切换过来是不确定的。要哑发3个字节的数据才能切换成UART模式,
大概是33US左右的时间;
3,如果用PLL作为UART的时钟的话,效果非常差,不知道是不是PLL不稳定的原因还是波特率发生器
在高时钟下不稳定 ?
有什么技术问题请与yuanxihua@21cn.com沟通。
附件:测试工程代码
9G-M0516.zip
(491.5 KB)
DMX512协议
DMX512控制协议.rar
(337.91 KB)
|