Sum*_*udu 4 byte integer arduino char serial-communication
我需要使用串行通信向Arduino发送一个整数,比如介于0到1200之间.这样做的最佳方法是什么?
我可以想到将数字分成一个字符数组(例如:500作为'5','0','0')并将它们作为字节流发送(是的,这很难看).然后在另一端重建.(任何东西都是作为字节流串行发送的,对吧?)
有没有更好的方法?不知何故,它应该能够将值分配给int类型变量.
(如果可能的话,真的需要知道关于字符串的相同事情)
如果您正在寻找的是速度,那么您可以将数字分成两个字节,而不是发送ASCII编码的int,这是一个例子:
uint16_t number = 5703; // 0001 0110 0100 0111
uint16_t mask = B11111111; // 0000 0000 1111 1111
uint8_t first_half = number >> 8; // >>>> >>>> 0001 0110
uint8_t sencond_half = number & mask; // ____ ____ 0100 0111
Serial.write(first_half);
Serial.write(sencond_half);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17507 次 |
| 最近记录: |