不能使用字符串,USART_SendData(USART1, str)必须是u16t类型
时间: 2024-05-12 14:14:55 浏览: 76
通过USART1 收发数据
USART_SendData函数的第二个参数是一个u16类型的数据,而不是字符串类型。如果你想发送一个字符串,需要循环遍历字符串并将每个字符发送出去。示例代码如下:
```
void USART_SendString(USART_TypeDef* USARTx, char* str)
{
while(*str)
{
while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET); // 等待发送缓冲区为空
USART_SendData(USARTx, (uint16_t) *str++); // 发送字符
}
}
```
这个函数中,我们使用了一个while循环来遍历字符串,然后将每个字符发送出去。请注意,我们需要将字符转换为uint16_t类型的数据,因为USART_SendData函数需要一个u16类型的数据。
阅读全文