嵌入式开发基础软件架构及部分实例代码

文章背景:

随着我们学习的深入,把所有的代码都放在一个目录会影响我们以后的移植和维护,所以我们需要对代码进行分层。(能力有限欢迎补充,持续更新

分层介绍:

根据代码的不同应用场景我们可以分为以下几层

第零层:公共层计算机从零开始 狗头保命

也称为通用层,就是大家经常使用的都可以放在里面。

例如:

  • 延迟函数(Dealy)
    • stm32的滴答定时器延迟函数示例:
      • void Com_Delay_us(uint16_t us)
        {
            /* 定时器重装值 */
            SysTick->LOAD = 72 * us;
            /* 清除当前计数值 */
            SysTick->VAL = 0;
            /*设置内部时钟源(2位->1),不需要中断(1位->0),并启动定时器(0位->1)*/
            SysTick->CTRL = 0x5;
            /*等待计数到0, 如果计数到0则16位会置为1*/
            while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG));
            /* 关闭定时器 */
            SysTick->CTRL &= ~SysTick_CTRL_ENABLE; 
        }
        
        void Com_Delay_ms(uint16_t ms)
        {
            while (ms--)
            {
                Com_Delay_us(1000);
            }
        }
        
        void Com_Delay_s(uint16_t s)
        {
            while (s--)
            {
                Com_Delay_ms(1000);
            }
        }
  • Deabug模块
    • 示例:待补充
  • 。。。(等 待补充!!)

第一层:驱动层(从底层开始依次递增)

直接控制存在于芯片内部的电路

例如:

  • I2C驱动
    • ​​​​​​​示例:待补充
  • USART驱动
    • ​​​​​​​​​​​​​​​​​​​​​示例:待补充
  • GPIO驱动
    • ​​​​​​​​​​​​​​​​​​​​​示例:待补充
  • SPI驱动
    • ​​​​​​​示例:待补充
  • 。。。(等,,,)

第二层:硬件接口层

控制外接电路,简单来说就是不在芯片内部,自己买的用来读取某些值或者控制某些事

例如:

  • LCD
    • ​​​​​​​​​​​​​​示例:待补充
  • 外置ADC
    • ​​​​​​​​​​​​​​示例:待补充
  • 继电器
    • ​​​​​​​​​​​​​​示例:待补充
  • 。。。(等、、、)

第三层:应用层

整合已读取的数据,控制操作硬件进行工作,实现需要的功能

例如:

  • 显示模块
    • ​​​​​​​示例:待补充
  • 水位测量
    • ​​​​​​​示例:待补充
  • 水质监测
    • ​​​​​​​示例:待补充
  • 。。。(等,,,)

第四层:Main函数

调用自己写的函数,运行呗!!  就不例如了  通常只写初始话,尽量低耦合;

其实还有一层  中间层  用于移植操作系统  由于还没学  所以暂无 等待更新!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值