OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3737|回复: 4

让底层开发更快乐

[复制链接]

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
658
金钱
658
注册时间
2013-11-22
在线时间
131 小时
发表于 2015-8-20 17:52:03 | 显示全部楼层 |阅读模式
众所周知,玩单片机,做底层的话,无非就是配置各种寄存器,我们需要在能看懂

硬件原理图的情况之下,让我们的硬件工作起来,也就是写所谓的驱动,那么编写

驱动是否有一种统一的步骤呢?大牛们可以用一些伪代码总结总结,这里根据自己

的想法,写了一部分,希望可以引来更多更详细的总结,让我们的底层开发人员

更清楚的知道自己能做什么?该做什么?

寄存器配置的一般步骤总结:

初始化
{
          打开总时钟;          //1.如果已经打开,则不用配置;否则配置,这里面我们一般要去看该芯片的数据手册
                                         //  中“时钟树”里面,关于时钟的配置图解来操作对应的寄存器

         打开该硬件时钟;     //2.如果已经打开,则不用配置;否则配置,有些芯片为了省电设计,都会有单独的时钟
                                        //  这时候要打开相应的时钟,才能让该硬件工作

        设置引脚模式;        //3.若需求为默认模式,则不用配置;否则配置,基本上IO口都会有2个以上的功能,那么
                                       //  该使用哪种功能,需要用户来配置,这里面可以去查看关于引脚功能相关的说明
                                      //  来配置模式寄存器

   配置硬件控制器参数;  //4.这里根据自己的需要,对每个关心的寄存器进行置位或清零,达到所需配置模式,这里面
                                       //  需要用户去仔细查看该控制器的寄存器描述

    中断初始化配置;     //5.如果使用到对应中断的话,请打开相应中断,及配置中断的特性,根据需要,编写中断服务函数
                              
       中断开关;           //6.初始化时根据需要打开或关闭中断开关
    
      控制器开关;         //7.初始化时根据需要打开或关闭控制器开关
}

写操作                 //一般指该硬件与其它硬件交互数据,如IO口输出高低电平,串口、485或CAN发生数据等等
{
          判断上次写操作是否结束;     //1.根据具体情况,判断上次写操作是否结束
          
          如果结束,执行一次写操作;    //2.给出相应的输出操作
}


读操作               //一般指该硬件与其它硬件交互数据,如IO口读入高低电平,串口、485或CAN接收数据等等
{
          判断上次写操作是否结束;     //1.根据具体情况,判断是否可读
          
          如果可读,执行一次读操作;    //2.读取相应的数据
}

中断服务函数
{
         判断是何种中断;    //1.判断中断的来源,做不同的中断处理
        
         读取相应的中断指定的数据;  //2.中断触发,说明可以进行相关的操作,该读取读取,该写入写入
}

写的不好,抛砖引玉,欢迎大家一起总结,让编程更自由!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5706
金钱
5706
注册时间
2013-11-22
在线时间
1199 小时
发表于 2015-8-20 21:30:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

18

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
560
金钱
560
注册时间
2014-10-29
在线时间
228 小时
发表于 2015-8-20 22:34:49 | 显示全部楼层
帅气,太有帮助了
回复 支持 反对

使用道具 举报

3

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
538
金钱
538
注册时间
2012-7-19
在线时间
63 小时
发表于 2015-8-21 08:02:32 | 显示全部楼层
wince上流式驱动结构,类似你的说法
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-8-21 23:13:57 | 显示全部楼层
不错,确实是这么几个步骤。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表