我是靠谱客的博主 微笑吐司,这篇文章主要介绍stm32 串口发送多字节数据(结构体版本),现在分享给大家,希望可以做个参考。

话不多说先上代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
typedef struct shuju { u8 sj0; //帧头 u8 sj1; u8 sj2; u8 sj3; u8 sj4; u8 sj5; u8 sj6; u8 sj7; u8 sj8; u8 sj9; //帧尾 }shuju; //实际使用 shuju shuju_1; void shujucunchu(shuju *shuju_1) { shuju_1->sj0 = 0xAA; //帧头数据 shuju_1->sj1 = 0xFD; shuju_1->sj2 = 0x02; shuju_1->sj3 = 0x00; shuju_1->sj4 = 0xDF; shuju_1->sj5 = 0xA5; shuju_1->sj6 = 0xA6; shuju_1->sj7 = 0xA7; shuju_1->sj8 = 0XA8; shuju_1->sj9 = 0xBB; //帧尾数据 } void send_data_(shuju*shuju_1,u8 len) { static u8 date=0,i=0; for(i=0;i<len;i++) //使用sizeof计算结构体 { date = *(((u8 *)&shuju_1->sj0)+i); //从帧头开始 然后依次向下指向 USART_SendData(USARTx,date); //发送一个字节 while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!= SET); } }

 

这个代码主要是解决了一个数据长而又无法一次性发送的问题

不懂就问,非常实用!

复制代码
1
2
3
4
//主函数调用 shujucunchu(&shuju_1); //赋值 printf("sizeof:%drn",sizeof(shuju_1)); //sizeof:10 send_data_(&shuju_1,sizeof(shuju_1)); //发送一帧数据

 

最后

以上就是微笑吐司最近收集整理的关于stm32 串口发送多字节数据(结构体版本)的全部内容,更多相关stm32内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部