完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

|
本帖最后由 snailmoving 于 2016-11-8 08:27 编辑 在上一篇中使用的是STM32F4cube的工程模版文件,因为STM32F4CUBE的包含了几乎所有STM32F4系列单片机的开发板程序,文件比较庞大。我打算基于我自己的编程习惯,参考STM32F4CUBE,创建自己的STM32F412软件工程模版。1、首先打开STM32F412参考手册,找到时钟树。
参考STM32F4CUBE的程序,单片机上电,先设置堆栈和中断向量表,然后会调用SystemInit和main函数。SystemInit函数如下图所示:
NUCLEO-F412ZG没有连接外部晶振,所以程序选用单片机内部自带16MHz振荡器,设置PLL的频率为96MHz,供系统时钟使用。 PLL输出频率 = 16MHz/PLLM*PLLN/PLLP。PLLM=16,PLLN=192,PLLP=2,得到的时钟频率为96MHz。 同时PLLQ = 2,PLLR=2,设置为48MHz供USB等外设使用。 进入main函数以后,还会调用SystemClock_Config()函数,设置AHB APB1 APB2等时钟频率。 STM32F4CUBE的时钟设置符合我的需求,可以直接拿来用。 2、创建工程模版。 MDK创建工程的基本方法这里不在赘述。 创建五个文件夹,USER,HARDWARE,STM32F4_Hal_Driver,CMSIS,STARTUP USER文件夹中主要包括main.c和stm32f4xx_it.c以及相关的头文件 HARDWARE文件夹包含外设的驱动程序 STM32F4_Hal_Driver文件夹包含官方外设库文件 CMSIS文件夹包含system_stm32f4xx.c及相关头文件 STARTUP文件夹包含startup_stm32f412zx.s
添加宏定义,包含头文件路径,设置ST-LINK等。 STM32F412Zx,USE_HAL_DRIVER,USE_STM32F4XX_NUCLEO_144
此时编译,下载到开发板,能够成功,但是还不知道开发板有没有正确运行。 在HARDWARE中创建LED.c初始化GPIO等,在main中初始化并且点亮LD1 LD2 LD3。
|
|
相关推荐
6 个讨论
|
|
|
后面多了一张图片,不知道咋回事
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我也要加紧时间来弄,最近公司事多。。。
|
|
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
169 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4077 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2880 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2564 浏览 0 评论
2690 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 01:25 , Processed in 0.573641 second(s), Total 44, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2901