我试图使用Arduino的SoftwareSerial与RS-422设备进行通信。 我使用SN75179BP将422转换为TTL。Arduino SoftwareSerial库mod允许8-O-1 com
该器件是8位 - 奇校验 - 1个停止位。 我试着用mod修改softwareserial库: http://arduino.cc/forum/index.php/topic,108097.0.html
将写函数中的奇偶位计算更改为奇数而不是偶数。
两个问题: 首先,如果我用确切的MOD由塔[4评论]在recv函数建议,同时要上传的素描时,我得到:
/var/folders/st/vmhkh5t57592ln_zhkyfq2q80000gn/T//cct5EjNP.s: Assembler messages:
/var/folders/st/vmhkh5t57592ln_zhkyfq2q80000gn/T//cct5EjNP.s:243: Error: register r24, r26, r28 or r30 required
/var/folders/st/vmhkh5t57592ln_zhkyfq2q80000gn/T//cct5EjNP.s:263: Error: register r24, r26, r28 or r30 required
不知道为什么。 但是如果我离开的功能是,只有改变这种:
// skip the parity bit
tunedDelay(_rx_delay_stopbit);
DebugPulse(_DEBUG_PIN2, 1);
// skip the stop bit
tunedDelay(_rx_delay_stopbit);
DebugPulse(_DEBUG_PIN2, 1);
这样:
// skip the 2 stop bits
tunedDelay(_rx_delay_stopbit*2);
DebugPulse(_DEBUG_PIN2, 1);
我可以上传草图,甚至开始在收到真实和正确的数据我的系列。
的第二个问题,就是无论我做什么 - 我不能写功能的工作。 该设备不响应任何输入,除了在第二次尝试通过串行发送某个设备到该设备,我停止在我的接收通道上获得漂亮和干净的数据,而不是我变得杂乱无章...
[顺便说一句,在这种情况下 - 如果发送一些“新线” 0D,它带回正常的数据在收到信...]使用
* - 我的Arduino 1.0.1
编辑:我不知道它是否重要,但我正在使用inverse_logic来使receive函数正常工作。
任何想法都会受到欢迎!
解决方案:http://arduino.cc/forum/index.php/topic,122281.0.html – user1661283
这将是很好,如果你能回答你自己的问题。包括链接是好的,但由于链接腐烂,只有链接的答案是皱眉,一定要在答案本身添加一个简短的总结。 – dandan78