STM32中 USART_SendData();函数为什么数据要是16位的,USART只能传输8位或9位数据,
我要和8位单片机通信,数据该如何处理
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
/* Check the parameters */
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_USART_DATA(Data));
/* Transmit Data */
USARTx->DR = (Data & (uint16_t)0x01FF);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
因为没有9位数据的标准格式。
只有u8,u16,u32之类的,没有u9。所以凡是大于u16的用u32表示。大于u8的小于u16的用u16表示。
---------------------------------
哦,那是不是和8位单片机通信时,不用做改动,只要把发送和接受的数据定义为u8就可以了。
---------------------------------
谢谢,我先试试
一周热门 更多>