中级会员
 
- 积分
- 235
- 金钱
- 235
- 注册时间
- 2018-5-2
- 在线时间
- 83 小时
|
这篇的内容比较简单,就是继承的实现
我们先说继承的概念, 这里就像是父子的概念,儿子从父亲的基因里面继承了很多相同的东西, 父亲有的儿子都有,但是儿子毕竟青出于蓝胜于蓝 也有它的不同之处;
这里在单片机中的具体应用,比如说LED,我们前面介绍有端口等属性 和闪烁 设置状态等方法函数;
那么 我们如果要创建一个呼吸灯类 是不是 也要用到 端口,设置状态 这些呢?
答案当然是的,这些相同部分的代码 我们就不需要重新去写了;
具体上代码:
[mw_shl_code=c,true]typedef struct CLASS_LED
{
void (* const SetLedGPIOCMD)(struct CLASS_LED * p, GPIO_TypeDef* GPIOx, u16 GPIO_Pin); //éèÖÃLED¶Ë¿ú
void (* const LED_SetST)(struct CLASS_LED * p,u8 LED_ST);
struct CLASS_LEDBlink * LEDBlink;
GPIO_TypeDef* _GPIOx;
u16 _GPIO_Pin;
u8 _LED_ST;
}typ_CLASS_LED;[/mw_shl_code]
[mw_shl_code=applescript,true]typedef struct CLASS_Breathe_LED
{
typ_CLASS_LED Basic; //基类 父类 (继承LED类)
void (* const set_duty_cycle)(struct CLASS_Breathe_LED * p, u8 value);//设置占空比
void (* add_duty_cycle)(struct CLASS_Breathe_LED * p); //增加占空比
void (* Less)(struct CLASS_Breathe_LED * p); //减少占空比
u8 value; //当前占空比
}typ_CLASS_Breathe_LED;[/mw_shl_code]
这样就可以了,具体使用代码晚一点再补充
|
|