想使用SCI空闲模式实现多机通讯,初始设置 SciaRegs.SCICTL1.all =0x006D; SciaRegs.SCICTL2.bit.RXBKINTENA = 1;程序运行后不管接收到什么数据接收中断都会发生,SLEEP位一直是1,是什么原因呢?而本机地址又如何设置?
mangui zhang:两线的SCI不设计地址啊只要有数据他肯定能收到
关于收到后的数据包中可以增加协议设置帧头等
想使用SCI空闲模式实现多机通讯,初始设置 SciaRegs.SCICTL1.all =0x006D; SciaRegs.SCICTL2.bit.RXBKINTENA = 1;程序运行后不管接收到什么数据接收中断都会发生,SLEEP位一直是1,是什么原因呢?而本机地址又如何设置?
JIANGBO WANG:
回复 mangui zhang:
对于空闲线模式我是这样理解的:1-检测到总线空闲时长(大于10*1/波特率),2-接收到第一个字符与本机的地址比较,3-地址相同允许中断,继续接收其他数据,4-地址不同,中断不能发生,一直到检测到下一个空闲时间。
这种工作模式对于设备在总线上工作很有用。以前都是用定时器处理,串口多的时候定时器数量就要增加。如果有这个功能就会很方便。美中不足的是间隔时间不能随意设定。
想使用SCI空闲模式实现多机通讯,初始设置 SciaRegs.SCICTL1.all =0x006D; SciaRegs.SCICTL2.bit.RXBKINTENA = 1;程序运行后不管接收到什么数据接收中断都会发生,SLEEP位一直是1,是什么原因呢?而本机地址又如何设置?
JIANGBO WANG:
回复 mangui zhang: