Encoding 串行端口编码-我需要8位ASCII或提示
我需要你的帮助。我试图在c#串行端口应用程序和微控制器之间实现数据读出 举个小例子: 我的微控制器正在发送4个8字节值的32位整数 在我的微控制器上,代码如下所示:Encoding 串行端口编码-我需要8位ASCII或提示,encoding,ascii,Encoding,Ascii,我需要你的帮助。我试图在c#串行端口应用程序和微控制器之间实现数据读出 举个小例子: 我的微控制器正在发送4个8字节值的32位整数 在我的微控制器上,代码如下所示: uart_putc((uint8_t)(number>>24)); uart_putc((uint8_t)(number>>16)); uart_putc((uint8_t)(number>>8)); uart_putc((uint8_t)number); uart_putc(char c)是一
uart_putc((uint8_t)(number>>24));
uart_putc((uint8_t)(number>>16));
uart_putc((uint8_t)(number>>8));
uart_putc((uint8_t)number);
uart_putc(char c)是一种通过串行端口发送一个字符的函数
当我有一个数字,比如:
uint32_t number = 16000000;
微控制器将此编号与上述代码一起拆分并发送到以下4个部分:
- 0
- 244
- 三十六
- 0
byte[] asciiBytes = Encoding.ASCII.GetBytes(string);
但是它不能正常工作,因为它只转换一个7字节的整数,例如244,比它多。
你能帮我解决我的问题吗?由于性能原因,我不想将微控制器上的数字转换为字符串,并在我的c#应用程序中将字符串重新转换为数字
非常感谢
附言:
明白了
问题是,在读取serialport缓冲区之前的编码是错误的
System.Text.Encoding iso_8859_1 = System.Text.Encoding.GetEncoding("iso-8859-1");
port.Encoding = iso_8859_1;
解决了我的问题
无论如何,谢谢你;) 仅定义128个字符(即7位)写一个解决方案,在那里解释它,然后接受它。这样(1)线索就得出了一个合乎逻辑的结论(2)任何其他人都可能受益。