求助STM32 USART 通信问题

2019-07-21 08:26发布

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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
长昵称不被占用
2019-07-22 10:18
正点原子 发表于 2012-6-12 11:36
回复【楼主位】原味_郭:
---------------------------------
因为没有9位数据的标准格式。
只有u8,u16,u3 ...

[mw_shl_code=c,true]void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)

u8 USART_RX_BUF[USART_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.
//===================//
请问原子哥,要求参数uint16_t,我们传递的u8 USART_RX_BUF这是为什么??
//===============//
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res;
这里u16 USART_RX_STA=0;       //接收状态标记          
请问这里定义的U8数组里面写U16参数为什么不报错,而且Res是把u8放入数组的??谢谢[/mw_shl_code]

一周热门 更多>