- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 小白话回调
使用回调函数可以避免这种问题,通过将函数作为参数传递给其他函数,并在需要的时候调用回调函数。有关C语言的回调,已经是老生常谈的问题了,今天我们就来点不一样的,关于定义,实现种种,这里就不再班门弄斧了,网上大佬太多了,这里,仅列举在一些场景的回调调用。回调函数可以在回溯的关键点上执行一些特定的操作。1. 解耦逻辑:回调函数可以将函数之间的逻辑解耦,使得每个函数专注于自己的功能,提高代码的可读性和可维护性。5. 多态性:回调函数可以用于实现多态,通过传递不同的回调函数,同一个调用可以实现不同的行为。
2023-08-17 15:48:54 132
原创 嵌入式软件开发之程序编程规范(五)
在单片机开发或者需要开发 LCD 驱动的情况,需要自己通过工具生成需要使用的中文字库(大多是 GB2312 格式),则需要留意该文件的编码格式,如果文件的编码格式是 utf8,则不能正常对应,如下是LCD 驱动的部分使用的字体库(一般为 GB2312 编码)作为一个软件开发人员,应养成良好的编程习惯,随着编码越来越多,内容也会变得越来越多,规范化自己的编程有助于为了在程序代码量很大的时候,便于自己阅读,也便于别人阅读(团队合作),特别是作为一个合格的开发者,更需要规范自身写的程序代码,形成一种良好的习惯。
2023-06-20 10:35:41 183
转载 嵌入式软件开发之模块化程序设计(三)
例如,做一个手持遥控设备,在程序分层的基础上划分各个模块、如下图,硬件抽象层中就有通用 IO、ADC、定时器、CAN 等驱动 ,功能模块中有按键模块、储存模块和指示灯模块,应用层有人机交互功能,程序的结构一目了然。模块内部使用的全局变量,需要外部修改或者获取时,需要通过封装成 API 函数对外提供,同时可以在函数内有相关限制,防止外部直接操作模块内部的全局变量引发模块运行异常,因此模块内部的全局变量可定义为静态全局变量。在分解初期,可以只考虑大的模块,在中期,再逐步进行细化,分解成较小的模块进行设计。
2023-06-20 10:18:07 747
转载 嵌入式软件开发之程序分层(二)
硬件抽象层和驱动层主要就是为功能模块层提供的,实现该项目需要的功能,比如KEY、LED和EEPROM等功能,其中LEY、LED基本调用硬件抽象层的API函数(更复杂的可能通过片外芯片获取/控制等,因此可能也需要使用硬件驱动层),EEPROM调用硬件驱动层的API函数,即使EEPROM芯片更换(AT24C02或W25Q128等),也不影响EEPROM之前编写含的功能代码程序(前提是AT24C02,W25Q128提供的API函数提供的是统一标准)。即使换了MCU,也只需将调用过硬件抽象层的API函数替换即可。
2023-06-20 10:16:08 932
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人