×
单片机 > 单片机程序设计 > 详情

教你如何使用stm32发送一帧数据(结构体中的数据)

发布时间:2020-08-21 发布时间:
|

在这篇文章中我介绍一下如何通过串口发送一帧存在结构体中的数据。通过串口接受一帧数据请参考的我博客中的文章——教你如何使用stm32接收一帧数据!


一:在.h首先定义一个结构体。


typedef struct

{

    uint8_t H1;         

    uint8_t F1;           

    uint8_t A[7];       

    uint8_t AN;          

    uint8_t L;            

    uint8_t NU[3];        

    uint8_t Mode;        

    uint8_t ExOut_Temp[2];      

    uint8_t NowIn_Temp[2];     

    uint8_t NowOut_Temp[2];

    uint8_t Ex_Open[2];

    uint8_t Now_Open[2];    

    uint8_t Ex_PRESSSUB[2];

    uint8_t Now_PRESSSUB[2];

  uint8_t RTC_Time[7];

    uint8_t ST;

    uint8_t CS;

    uint8_t End;

}__attribute__ ((packed)) Read_Back;


二:在.c文件中先调用结构体。

  Read_Back  read_back; 

  Read_Back  *Read_back=&read_back;  



三:自定义发送函数。

void Read_Ack(Read_Back *p,u8 len)     //形参1为结构体的首地址 &read_back   形参2 为发送帧的长度

{

         static u8 date,i;    

for(i=0;i

{

date= * (((u8*) &p->H1)+i);    //每次循环将指针指向结构体中的下一个数据

         USART_SendData(USART3,date);   //通过串口3发送数据

         while( USART_GetFlagStatus(USART3,USART_FLAG_TC)!= SET); //等待发送完成

         }

}


四:调用自定义函数发送结构体数据。

Read_Ack(&read_back,len);



关键字:stm32  发送  一帧数据 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计