发布时间:2020-11-19 阅读量:1754 来源: 我爱方案网 作者: 刘工程师
【编者按】感谢阅读本文,将基于单片机C语言,讲述基于结构体的面向对象编程技巧。主要从知识说明和编程说明两大方面讲述。作者拥有10年的单片机经验,通过实践将知识提供给需要的工程师,让更多的工程师从中所学,从中受益。
阅读说明:需要一定的C语言基础,才看得懂此文。
一、面向对象
面向对象是软件开发方法,是相对于面向过程来讲的。通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式
单片机C语言的面向对象编程,是利用结构体,将变量、指针、函数等进行封装,达到编程更加方便、程序可读性更好、方便移植等目的。
二、知识说明
1、结构体
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
常用的定义方法:
typedef struct
{
变量;
指针;
函数指针;
} 结构体名称_t;
2、指针
指针是地址,指向内存中的变量。
常用的定义方法:数据类型 * 指针名;
3、函数指针
函数指针是指向函数的指针变量。
常用的定义方法:返回值类型 ( * 指针变量名) ([形参列表]);
三、编程说明
1、主函数如下:
系统初始化后,进入主循环,通过结构体调用system文件的函数。
2、结构体类型定义
定义1个变量与2个函数指针
串口类型定义方法,通过结构体,将串口进行封装。
3、结构体变量定义
定义结构体变量,并进行初始化。 对于函数指针,在c文件中定义函数,再将函数名赋值给函数指针,这样,就可以通过结构体的函数指针调用c文件中的函数。
4、运行函数
由于使用结构体的函数指针调用函数,函数可以声明为static类型,安全性更好。
五、小结
单片机C语言的面向对象编程,是利用结构体,将变量、指针、函数等进行封装,达到编程更加方便、程序可读性更好、方便移植等目的。
面向对象编程的知识点很多,本文只是简要的介绍了下,仅仅起到抛砖引玉的作用,日后设计过程中,需要不断的总结经验,沟通交流,以达到真正的理解,灵活运用。
作者介绍:刘工程师(笔名),在软硬件技术上有10年的经验,在单片机的经验更是突出,解决过多个单片机难题,可接单片机和软件开发等项目。目前在开讲单片机的教学,教程会在我爱方案网更新,敬请期待!公众号【硬件家园 】
版权声明:本文为博主原创,未经本人允许,禁止转载!
在硬件调试中,许多工程师在测量晶振时发现两端都有电压,例如1.6V,但没有明显的压差,第一反应可能是怀疑短路。
在电子设备中,CMOS有源晶振作为核心时钟源,其供电电压与输出特性直接影响系统稳定性。然而,高频方波信号的测量常因工具选择不当而产生误差:传统万用表的交流档基于正弦波有效值校准,测量方波时误差可达40%以上,而示波器通过直接捕获峰峰值(Vpp)和频域特性,可精准反映晶振的幅值、占空比及起振状态。本文将从有源晶振的电压特性(如YSO110TR系列兼容1.8-3.3V宽压供电)切入,解析万用表直流档的半压测量原理(3.3V供电时显示约1.65V),并对比示波器在探测CMOS方波时的关键技术参数(如探头衰减档位选择与接地优化),为工程师提供兼具理论基础与实践价值的测量方案参考。
加速度灵敏度是晶体振荡器对任何方向施加的外力的固有灵敏度。石英振荡器确实提供了我们所有人每天都依赖的电子设备的心跳。石英的有用之处在于,如果施加电压,石英将开始振动。不利的一面是,如果施加振动,石英会产生电压。该电压显示为相位噪声,并且是真正的阻力。
在很多电路中,系统晶振时钟频率很高,干扰谐波出来的能量也强,谐波除了会从输入与输出两条线导出来外,也会从空间辐射出来,这也导致若PCB中对晶振的布局不够合理,会很容易造成很强的杂散辐射问题,并且一旦产生,很难再通过其他方法来解决,所以在PCB板布局时对晶振和CLK信号线布局非常重要。
为落实中美经贸高层会谈的重要共识,自2025年5月14日12时01分起,调整对原产于美国的进口商品加征关税措施。由34%调整为10%,在90天内暂停实施24%的对美加征关税税率。这一政策调整旨在缓和贸易摩擦,促进双边经贸合作,但也进一步凸显了供应链自主可控的重要性。才能在激烈的市场竞争中脱颖而出,实现可持续发展。YXC晶振断凭借优异的成本资源及质量,与国外逐渐缩小差距,并在市场上获得大众认可。