STM32硬件编程_学习思路

分享一下自己的学习思路,是关于我的STM32的学习方法,以STM32硬件编程思想为例

第一点:编程首先应该清楚的是“需要什么”。

需求包括①上级(自己)开出的要求、条件。②硬件应实现的功能。③是否符合客户(自己)的需求。比方说,我要做个数控直流稳压电源:首先我得先清楚需要什么功能,参照市场上符合功能要求的产品,看看他们有什么值得借鉴的。

第二点:考虑使用什么芯片可以实现大致功能,且降低开发成本,符合开发工期。

       要做数控直流稳压电源的话,我根据第一点分析出我需要的功能是①显示参数。②电压直流且可调。③可以人工操作。④其他功能,如报警、限制、多路等等。

       ①显示参数:需要显示什么参数,一般显示输出的电压值,设置参数值,当前功能等等,然后再看看上级(客户)对屏幕有没有要求,对功能有没有要求。

       ②电压直流且可调(主要功能):这个得考虑到精度和抗干扰,即:是使用MCU的片上外设功能,还是外接电路的,如果使用片上外设功能,成本可以缩减很多,但抗干扰不好、精度不高;如果是外接电路功能,抗干扰能力强、精度高,但成本和功能强悍成正比。

       ③人工操作:根据自己(客户)的需求,使用何种控制方式:触屏、按键、遥控等等。分析控制方式需要的成本以及实现的难易度是否符合所给工期。

       ④其他功能(旁路功能):只有把主要功能完成了,旁路功能才有意义。

 

 

硬件编程学习思路

一、了解主控芯片

       首先必须知道主控芯片有什么功能,了解芯片功能的途径就是“芯片数据手册”、“用户手册”这两个。STM32在这个方面做得很好,

1、F1系列芯片数据手册:

       该手册用于,芯片的应用(指使用途径,工作环境,芯片选型等)参数。

      

每个系列都有对应型号的芯片手册

打开我们常用的大容量f103芯片手册,芯片手册最常用功能的就是芯片的引脚定义,每种容量芯片的引脚定义方式都不一样。

 

2、F1系列用户手册(也叫参考手册)

       这个手册有详细的芯片功能介绍与描述、片上外设功能介绍与描述、寄存器描述等功能

打开参考手册,可以看到目录栏有很多书签,手册的书写习惯是:外设的简介->外设的功能介绍->外设的功能描述->外设的寄存器描述。因此用户手册(参考手册)是一个很有利的参照材料。

3、国产STC的手册

       拿STC15W系列的手册来说,它将芯片手册和用户手册整合到一起,显得很臃肿,且没有书写规则,但它还是了解芯片功能的最主要途径

      

 

二、清楚编程方法

       51单片机是使用寄存器的编程方法,这是最接近底层的方法,且运行速度最快。STM32可以使用寄存器的编程方法,但是由于STM32的寄存器太多,如下图,因此使用寄存器的方法开发工期会延长,因此就有了库函数的编程方法。

       库函数的编程方法有两种,一种是固件库编程,这是我们常用的编程方法;还有一种是HAL库编程,这是近段时间,官方推出的库,它的优点是可移植性高,只要选择好型号就可以,且可以使用图形化编程。由于HAL库出现的时间较近,材料少。因此使用固件库编程是比较划算的。

       库函数编程需要的材料就是它的“固件库手册”,也就是说明书,如果有了解到Java的话,也许会听到一个词API,固件库和其类似,不过API只是个接口,它隐藏了内容,固件库是本地库,是供单片机调用的,所以它不能隐藏内容。

       回到正题,打开“固件库手册”,每一个片上外设都有完整的固件库与之对应,固件库常用于初始化外设,用XXX_Init()函数。固件库其实也是以操作寄存器的方法来编写的,只不过它的使用方法没有那么复杂,且直观,查找问题方便,但是其“程序运行效率”不高,简单来说就是速度不快。因此对于精度要求非常高的项目,还是使用寄存器的编程方法好。鉴于开发工期,因此选择固件库是比较好的。

       注意,学习其他芯片的时候,可以看看它有没有固件库,因为固件库就是封装底层的操作,因此学习周期会大大减半,到时候用熟了,回过头来在看寄存器,就可以事半功倍了。

      

三、搜集全各种材料

       硬件编程,不同于其他编程,它要面对的对象是机器、是硬件,因此在编程前或者空余时间,要有个习惯:就是搜集材料,因为事半功倍,不要到编程时才急急忙忙的找,那个时候可能还找不到,且还浪费了许多工期,上级(客户)不满意。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值