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

在这篇文章中我介绍一下如何通过串口发送一帧存在结构体中的数据。通过串口接受一帧数据请参考的我博客中的文章——教你如何使用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<len;i++)
	{
	 date= * (((u8*) &p->H1)+i);    //每次循环将指针指向结构体中的下一个数据
         USART_SendData(USART3,date);   //通过串口3发送数据
         while( USART_GetFlagStatus(USART3,USART_FLAG_TC)!= SET); //等待发送完成
         }
}
四:调用自定义函数发送结构体数据。

Read_Ack(&read_back,len);


评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值