uint8_t tx_buffer[] = {0xaa}; usart_data_transmit(EVAL_COM1, *tx_buffer);这两段代码从电脑A发送数据0xaa到电脑b,为什么电脑B的串口调试助手HEX码输出了一大段AA 2A 8A等字符
时间: 2024-02-18 20:00:17 浏览: 36
这可能是由于数据传输的位数不一致导致的。在这个例子中,数据是用8位无校验位的方式传输的,但是串口调试助手默认情况下是以7位或者8位加校验位的方式接收数据的。因此,当传输的数据是0xaa时,电脑B串口调试助手会将其解析为0x2a(0xaa的第7位为1,因此默认解析为8位加校验位),接下来的数据同理,因此出现了一大段不符合预期的输出。
为了解决这个问题,可以在电脑B的串口调试助手中设置正确的数据位数和校验位数,或者在发送数据的代码中设置正确的位数和校验位。可以参考如下代码:
```
uint8_t tx_buffer[] = {0xaa};
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx;
USART_Init(EVAL_COM1, &USART_InitStructure);
usart_data_transmit(EVAL_COM1, *tx_buffer);
```
其中,`USART_WordLength`设置为8位,`USART_Parity`设置为无校验位。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)