以前我一直觉得只有做纯软件的程序员才需要注意程序框架的设计,上了韦东山老师的课之后才觉得做单片机的程序开发注意框架设计也是很必要的事情。要在单片机开发的过程中引入面向对象的思想,这样的代码更容易扩展,可读性更强,将硬件层和应用层分开,降低了代码的耦合性。
以按键点灯程序为例:
void main(void)
{
GPIO_PinState key;
while (1)
{
key = HAL_GPIO_ReadPin(GPIOF, GPIO_PIN_6);
if (key == GPIO_PIN_RESET)
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_5, GPIO_PIN_RESET);
else
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_5, GPIO_PIN_SET);
}
}
常规的轮询方法就是如上所示,想要读懂这段代码就要有硬件知识、需要有HAL库知识,才能理解这个程序。无法扩展且代码无法复用。
所以要设计良好的程序框架,做到高内聚低耦合,对程序进行分层设计:将程序分为驱动层、中间层以及应用层。结构如下:
1.驱动层:对硬件进行调用以及封装,对每个按键以及led灯进行封装,实现需要的函数如对按键进行初始化(init_key)以及读取按键的值(read_key),同时为了将每个按键都区分开,采用结构体实现每个按键的函数,通过函数指针的方式,将每个按键
百问网七天物联网课程学习笔记——程序框架设计
于 2022-05-02 15:10:56 首次发布
本文是作者在学习物联网课程中的感悟,强调了单片机程序框架设计的重要性。通过引入面向对象思想,将硬件层与应用层分离,提高代码的可读性和可扩展性。文章以按键点灯程序为例,详细介绍了如何进行驱动层、中间层和应用层的分层设计,以实现高内聚低耦合的目标。这种设计理念对于单片机开发及未来的职业发展具有积极意义。
摘要由CSDN通过智能技术生成