我在使用 C_8283协议(新全功能、全串口)1.8.zip 里的串口2发现一个现象:
- u8 send_str[] = {0x3A,0x34,0x30,0x30,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x42,0x42,0x0D,0x0A};
- void main(void)
- {
- u8 i;
- sys_init();//系统初始化
- uart2_init(115200);//初始化串口2
- while(1)
- {
- uart_send_str(2,":400400000001BB\r\n",17);
- u8 send_str_len = sizeof(send_str) / sizeof(send_str[0]);
- // 通过循环逐个发送字节
- for (i = 0; i < send_str_len; i++) {
- uart_send_byte(2, send_str);
- }
[color=rgb(51, 102, 153) !important]复制代码
发现命名send_str数组和通过uart_send_str发送字符串常量发送的东西是一样的,但通过串口调试工具接收到的数据完全不一样,发送字符串常量能够接收到0x3A,0x34,0x30,0x30,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x42,0x42,0x0D,0x0A,但是循环发送send_str数字却是乱码的。
之后我又尝试了- u8 test_str[] = {0x3A, 0x3A};
- uart_send_byte(2,0x3A);
- for (i = 0; i < 2; i++) {
- uart_send_byte(2, test_str);
- }
[color=rgb(51, 102, 153) !important]复制代码
发送0x3A常量就能收到3A,但是循环发送数组就是乱码。
请大佬帮我解答一下。 |