历史上的今天
返回首页

历史上的今天

今天是:2024年10月16日(星期三)

正在发生

2019年10月16日 | 单片机C语言 串口传输 结构体

2019-10-16 来源:eefocus

串口传输 结构体  就是 把结构体 转换为 数组 ,然后传输 数组中的 char。


即 struct  - - - - - - ->> char [ ] ;


然后 char[ ] - - - -- - - - -->> struct .


给出一下简单实例代码 :


#include

#include

 

/*--------------------------start file---------------------------------*/

typedef struct

{

int id;

char name[10];

int score;

}student;

 

 

int struct_array(char* des, student *src)

{

int num;

char *temp = (char *)  src ;

for(num=0;num *(des+num)= temp[num];

return num;

 

}

 

 

void array_struct(student * des ,char * src)

{

 

char* temp = (char *) des;

int num;

for(num=0 ;num < sizeof(student);num++)

*(temp++)= src[num] ;

}

 

 

void show_student(student * name)

{

printf("id is : %dn",name->id);

printf("name is : %sn",name->name);

printf("score is : %d n",name->score);

 

}

 

 

void show_array(char *str ,int len )

{

printf("len is : %d n" ,len);

 

while(len--)

{

putchar('|');

putchar(*str++);

}

printf("|n");

}

 

 

int main()

{

char name[10] ="laomao";

 

student laomao = { 123 , {"laomao"} , 99 } ; 

char save[100] ;

int len ;

 

 

student * answer;

 

 

 

len = struct_array(save, &laomao) ;

show_array(save , len);

 

array_struct(answer , save) ;

show_student(answer);

show_student(&laomao);

 

 

 

return 0;

}

 

/*---------------------------end file----------------------------------*/

运行结果:


-------------------------------------------------------


len is : 20

|{| | | |l|a|o|m|a|o| | | | | | |c| | | |

id is : 123

name is : laomao

score is : 99

id is : 123

name is : laomao

score is : 99


---------------------------------------------------------------

推荐阅读

史海拾趣

EMI Filter Company公司的发展小趣事

TDK公司,作为全球知名的电子元器件制造商,早在上世纪80年代就开始涉足EMI滤波器领域。当时,随着电子设备的日益普及,电磁干扰问题逐渐凸显。TDK看准市场需求,投入大量资源进行EMI滤波器的研发。初期,他们面临着技术难题和市场接受度的挑战。然而,通过不断的技术创新和产品迭代,TDK的EMI滤波器逐渐在市场上站稳了脚跟。他们的产品在计算机、通信设备等领域得到了广泛应用,有效解决了电磁干扰问题,提升了设备的稳定性和可靠性。

Advanced Components Industries Inc公司的发展小趣事

在快速发展的过程中,ACI始终注重品质管理。公司建立了严格的质量检测体系,确保每一件产品都符合高标准的质量要求。同时,ACI还积极推行持续改进的理念,不断优化生产流程,提高生产效率。

这些努力使得ACI的产品在市场上赢得了良好的口碑。客户对公司的产品和服务给予了高度评价,纷纷表示愿意与ACI建立长期合作关系。这些正面的反馈进一步推动了ACI的发展。

Electro-Mech Components Inc公司的发展小趣事

随着公司业务的不断发展壮大,EMC开始积极实施全球化战略。公司在全球范围内寻找合适的合作伙伴和销售渠道,努力将其产品推向更广阔的市场。通过与国际知名品牌的合作和交流,EMC不断提升自身的品牌形象和市场影响力。同时,公司还加强了对海外市场的调研和分析工作,以便更好地满足不同地区客户的需求和期望。

请注意,以上故事是基于已知信息构建的框架性内容,具体细节和情节需要根据实际情况进行填充和完善。

ACCUTEK公司的发展小趣事

随着产品质量的不断提升和市场份额的逐步扩大,ACCUTEK公司开始将目光投向国际市场。公司积极参加国际电子展会和技术交流活动,与全球多家知名企业建立了合作关系。同时,公司还在海外设立了多个分支机构,以便更好地服务当地客户。这些举措不仅提升了公司的国际影响力,也为公司的长远发展注入了新的活力。

南京绿芯(Grenergy)公司的发展小趣事

ACCUTEK公司深知人才是企业发展的核心力量。因此,公司始终注重人才培养和团队建设。公司建立了完善的人才培养和激励机制,鼓励员工不断学习和创新。同时,公司还注重营造良好的工作氛围和团队文化,让员工能够在轻松愉快的环境中工作。这些举措不仅提升了员工的归属感和忠诚度,也为公司的持续发展提供了有力的人才保障。

这些故事基于电子行业的一般发展规律和可能的企业发展路径构建,并不代表ACCUTEK公司的真实历史。如需了解该公司的真实发展情况,建议查阅相关资料或访问其官方网站。

DSP Group Inc公司的发展小趣事

为了进一步拓展业务领域和市场份额,DSP Group于2021年与Synaptics公司进行了合并。这次合并使DSP Group能够借助Synaptics在触控、显示和人机交互技术方面的优势,进一步拓展其在物联网、智能家居等领域的应用。同时,合并后的新实体也通过资源整合和优势互补,实现了更高的运行效率和更大的市场竞争力。

问答坊 | AI 解惑

PROTEL常用元件封装

电阻:RES1,RES2,RES3,RES4;封装属性为axial系列   无极性电容:cap;封装属性为RAD-0.1到rad-0.4   电解电容:electroi;封装属性为rb.2/.4到rb.5/1.0   电位器:pot1,pot2;封装属性为vr-1到vr-5  &nbs ...…

查看全部问答>

新手入门,请大虾指点!

我想在半个时钟周期输出num,用如下语句 always@(posedge clk or posedge clk_re)      num…

查看全部问答>

求教各位大虾 DIY钳形表 小电流信号放大

求教各位大虾 DIY钳形表 小电流信号放大   我现在正在DIY一个钳形电流表 目标参数是测量mA至十安级电流 传感器是买的钳形表表头 前期测试了表头的工作曲线 在温湿度允许范围内 表头的线性度比较好   让我郁闷的是  变比 ...…

查看全部问答>

很好的Android论坛

需要的兄弟可以看一下 http://www.eoeandroid.com/?fromuid=9379 偷偷说一句:我不是来做广告的,呵呵…

查看全部问答>

减了BSP几个驱动编译出错,特来请教。

我在我得2440 的BSP减了 camera,SDHC,wavedev 三个驱动, 采用的是在 dirs 中把 camera,sdhc,wavedev删除,然后对BSP Rebuild, Error: Could not find file \'C:\\WINCE600\\OSDesigns\\OSDesign1\\OSDesign1\\RelDir\\smdk2440a_ARMV4I_Debug\\o ...…

查看全部问答>

菜鸟求助:一份正常的BSP我的电脑编译出来的系统无法正常运行?

OMAP3530 + WinCE6 R3 由于项目开始时是基于一个较早版本的BSP,现在打算更新到TI的最新BSP. 更新才刚刚开始一点,就被卡住了.先把屏的参数拷过来,屏可以正常显示,发现触摸屏没用,然后就拷过来触摸屏的一些参数,发现还是没用. 然后就开始分析了: ...…

查看全部问答>

【求助】退出低功耗

我用的是149,初始化后让其进入低功耗状态,我用一个端口实现外部中断,可不可以在中断执行完成后,让其退出低功耗,并继续往下执行主程序。(因为主程序比较复杂,无发都写到中断程序中执行) 谢谢!…

查看全部问答>

无线充电系统设计原理与实作讲析

引言   无线充电技术经过了数年的推广与演进后,到如今终于开始受到人们的关注。无线充电是指具有电池的装置透过无线感应的方式取得电力而进行充电,正是因为其方便性,才得以让消费者愿意支付额外的费用购买无线充电相关产品;如此一来,大批厂 ...…

查看全部问答>

宏定义怎样才能人为选择呢?

我想这样编程序:有2段程序,分别叫“程序1”、“程序0”。里面均包括多个函数。 我希望在这种情况下,执行程序1,另种情况下执行程序2。 我是这样做的: 一、程序开头写上: uint8_t x; #define cons x 二、程序中有赋值语句: 在按下某键 ...…

查看全部问答>

麻烦管理员请注意:我不参加SensorTag大赛了,别给我寄了

麻烦管理员请注意:我不想参加SensorTag有奖赛了,别给我寄了 不好弄 转玩别的了 别给我寄SensorTag了 ,别浪费。…

查看全部问答>