type
status
date
slug
summary
tags
category
icon
password
📌
C语言使用结构体也能实现类似C++的面向对象编程,下面以封装串口为例,通过面向对象,分层分离以及模块化编程的思想减少冗余代码,最终实现通过一个函数就能注册板载串口

一、面向对象

首先,一个最简单的串口程序至少需要包含下函数(当然也可以添加),放到一个结构体中,类比C++的类的概念:
在对类实例化,构建自己的串口设备,并实现各个函数并提供一个统一的接口函数GetUARTDevice:
以后先通过GetUARTDevice函数获得串口,获取结构体成员即可调用该串口的各个函数:

二、添加私有数据

同一款芯片上面的多个 UART,它们的操作代码是类似的,没有必要为各个 UART 单独提供函数,可以采用共用一套加各自的私有数据实现。对上面UART_Device进行扩展,
priv_data将指向设备相关的结构体:
实例化,并实现函数(以UART_Rx_Start为例)
 
Linux驱动设计思想重新认识指针
Loading...