你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

从STM32CubeF0驱动包开始你的项目  

[复制链接]
manhuami2007 提问时间:2014-12-15 09:38 /

前几天折腾nucleo板子,准备修改一个项目,但是修改了半天也没有正常运行,郁闷,后来又重看了一遍《UM1779_rev2pub_STM32CubeF0_GettingStarted.pdf》才搞明白。一开始自己没有看全,以为驱动库的用法和以前(2年前,呵呵)差不多。没想到变化那么大,而且比以前好用多了,功能也更加的丰富。现在我就把文档中“如何开始自己的项目”那一段大概翻译一下,并不是逐字逐句地翻译,供大家参考,翻译水平很渣,希望不会误导大家。有什么不好的地方也请指出,谢谢。

在使用STM32CubeMX时会下载一个驱动包,那个包里有很多相应的例程,对自己的项目开始有很大的帮助,但是直接修改例程尤其是添加新的外设会出现外设不能运行的情况,这是因为新加外设的初始化程序没有在main.c中,而是在stm32f0xxx_hal_msp.c文件中。下面将完整的说一说如何开始自己的项目。
第一步,创建你的工程:工程可以直接使用包里提供的模板(Templates)工程,也可以从提供的例程中创建。模板工程初始化了如下特性:

--包含最小化的HAL、CMSIS、BSP驱动库
--包含所有驱动库的头文件
--define 了支持的STM32F0设备,因此可以相应的配置CMSIS和HAL驱动
--提供了用户直接可以使用的功能,如下:
   HAL初始化了ARM内核SysTick默认时基单元
   延时函数HAL_Delay()需要使用的SysTick中断
   系统时钟使用HSI配置的最小频率
注意:当你复制一个已存在的工程到别的地方时,要确保更新了头文件路径
第二步,添加所需的中间层模块到你的工程中:
需添加相应中间层的哪些文件,需要参考各个中间层提供的文档。你也可以从applications文件夹中参考需要添加哪些文件。
第三步,配置固件库:
HAL和中间层的使用需要修改一系列的宏。在模板工程中,这些宏一般在xxx_conf_template.h中,按需要更改。
第四步,开始HAL库:
在进入main函数之后,应用程序会调用HAL_Init()API来初始化HAL库,这个函数完成以下任务:
a)  配置FLASH的预取值和SysTick中断优先级(用户可通过stm32f0xx_hal_conf.h中的宏来修改)
b)  配置SysTick产生1ms周期的中断,它的时钟使用的HSI(在这个阶段,时钟还没有配置,因此系统使用内部的8MHz HSI)
c)  调用定义在stm32f0xx_hal_msp.c中的HAL_MspInit()回调函数,初始化底层的硬件
第五步,配置系统始终:
系统时钟的配置使用下面两个API :
a)  HAL_RCC_OscConfig():其配置系统使用内部和/或外部晶振,也包括PLL源。用户能够配置一个或者全部晶振。如果不需要PLL可以跳过其配置。
b)  HAL_RCC_ClockConfig():配置系统时钟源,FLASH内存延迟和AHB与APB的分频。
第六步,外设初始化:
a)  开始编写外设的HAL_PPP_MspInit函数,步骤如下:
--使能外设时钟
--配置外设GPIO
--配置DMA通道和使能DMA中断(如果需要)
--使能外设中断(如果需要)
b)  编辑stm32xxx_it.c文件,以调用需要的中断句柄
c)  编写进程完成的回调函数,如果需要使用外设的中断或者DMA时
d)  在main.c 文件中,初始化外设句柄结构体,然后调用初始化函数
第七步,编写自己的应用进程
注意:若需在中断中使用HAL_Delay()函数,一定要确保SysTick中断的优先级最高



收藏 4 评论44 发布时间:2014-12-15 09:38

举报

44个回答
巅峰残狼 回答时间:2014-12-15 22:15:45
Hi,楼主,不好意思啊,“STM32CubeMX时会下载一个驱动包”这个我下载的只有一个STM32CubeMX软件,没有你的说的提供的例程库,能把你下载的例程库上传吗或者给个链接,谢谢了
党国特派员 回答时间:2015-3-15 16:13:40
这是以后的方向,符合软件工程学。 QQ.jpg QQ.jpg QQ.jpg QQ.jpg QQ.jpg QQ.jpg QQ.jpg QQ.jpg QQ.jpg QQ.jpg
沐紫 回答时间:2014-12-15 10:05:05
32个赞
好心情123 回答时间:2014-12-15 19:13:36
这个要支持,非常不错啊
拼命三郎 回答时间:2015-1-6 17:09:56
不错,谢谢风向
黑溱郎 回答时间:2015-1-8 16:21:29
翻译非常不错啊,这个要支持。
麟狮蕟 回答时间:2015-1-9 00:28:43
回答时间:2015-1-10 23:28:27
感谢~~~~~~~~~~~~~~
qrsgcslqg 回答时间:2015-1-11 09:28:07
这个要支持
平淡是真 回答时间:2015-1-11 10:45:30
好资料,学习了
回答时间:2015-1-11 13:31:48
谢谢了~~~~~~~~~~~
lkl0305 回答时间:2015-1-11 19:00:12
总结的很好,支持一下。正要学习一下
lkl0305 回答时间:2015-1-11 19:00:52
总结的很好,支持一下。正要学习一下
lkl0305 回答时间:2015-1-16 23:48:28
正需要!
yceast 回答时间:2015-1-17 12:44:23
强烈支持
123下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版