原子哥,STM32的串口发送函数USART_SendData()怎么发送一个结构体数据?

2019-08-17 01:16发布

原子哥,STM32的串口发送函数USART_SendData()怎么发送一个结构体数据?
USART_SendData函数如下:

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);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
本帖最后由 刺客_奋斗的菜鸟 于 2017-7-12 15:13 编辑
XUZJWWSZ 发表于 2017-7-12 12:16
第二个参数才是要发送的数据。楼主可以读一下这个库函数上面的说明。

我是这样写的:
typedef struct{
    u8  num;
    u8 data[2];
}Temp;
Temp tem;
int main(void)
{
     u8  i,len;
     tem.num = 10;
     tem.data[0] = 50;
     tem.data[1] = 30;         
     ...................// 此处串口初始化省略
     len = sizeof(tem);
     while(len--){
         USART_SendData(USART1,(u8)&tem+i);
         while(USART_GetFlagStatus(USART1, USART_FLAG_TC));
    }
    while(1){
    }
}
但是打印出来的内容不是我对结构体成员赋的值。




一周热门 更多>