求助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条回答
正点原子
1楼-- · 2019-07-21 09:39
回复【楼主位】原味_郭:
---------------------------------
因为没有9位数据的标准格式。
只有u8,u16,u32之类的,没有u9。所以凡是大于u16的用u32表示。大于u8的小于u16的用u16表示。
原味_郭
2楼-- · 2019-07-21 11:58
回复【2楼】正点原子:
---------------------------------
哦,那是不是和8位单片机通信时,不用做改动,只要把发送和接受的数据定义为u8就可以了。
正点原子
3楼-- · 2019-07-21 16:50
发送u8就改u8
原味_郭
4楼-- · 2019-07-21 22:19
回复【4楼】正点原子:
---------------------------------
谢谢,我先试试
原味_郭
5楼-- · 2019-07-22 00:37
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-22 01:28
接收一个进一次中断.

一周热门 更多>