完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言
基于官方固件库的工程建立 提示:以下是本篇文章正文内容,下面案例可供参考 一、标准外设库 STM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。 STM32标准外设库可以到ST公司的官方网站下载,需要验证邮箱。 二、建立工程之前工作 在建立之前需要安装Keil对应的芯片支持包pack ①可以在keil的pack installer上安装 ②也可以在keil 官网上下载后导入到keil的pack installer里面 注: 以下网址是STM32PACK包下载的地址 三、 建立过程 ①在新建的文件夹中建立三个文件夹 ②将固件库中的一些文件放到core中(启动文件startup应选择相应的容量级别) ③将库中外设驱动放置在lib文件夹中,user文件夹是用户用来管理自己的代码的。 ④打开keil进行新建一个工程,并选择相关的芯片,将选择keil自带的界面关掉 ⑤点击“品”进行添加文件到工程(仅添加.c和.s文件即可),然后点击OK ⑥然后进行配置工程 STM32F10X_MD,USE_STDPERIPH_DRIVER是两个宏定义,USE_STDPERIPH_DRIVER控制了是否在应用中启用外设驱动,STM32F10X_MD属于自己的处理器型号 四、启动文件的选择 1.关于stm32启动文件ld, md, hd, cl, vl, xl的选择: ①根据自己芯片的型号进行选择对应的容量 怎么选择101xx 102xx 103xx是小容量、中容量还是大容量? 查user manual手册,以下为摘录 flash容量x: x《=32k 选择 ld 64k《= x 《=128k 选择 md 256《= x 《=512k 选择 hd ②那怎么区分MCU是多大的flash容量呢? ③选择对应的启动文件 startup_stm32f10x_cl.s 互联型的STM32F105xx,STM32F107xx startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_hd_vl.s 大容量的STM32F100xx startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_ld_vl.s 小容量的STM32F100xx startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_md_vl.s 中容量的STM32F100xx startup_stm32f10x_xl.s 超大容量FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx 2.为什么需要选择启动文件? 1.建立中断服务入口地址,即把中断向量与中断服务函数链接起来。 我们知道在NVIC配置中我们只定义了个 NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;也就是中断服务向量,再然后我们在stm32f10x_it.c文件的void USART2_IRQHandler(void){} 函数里添加串口的服务程序。但是mcu怎么知道中断向量USART2_IRQn对应的是USART2_IRQHandler(){}呢,这个就是启动文件所起的作用。 2.从systeminit()函数进入到main()函数。 对于stm32我们定义系统时钟的时候直接在system_stm3210x.c文件里修改宏定义即可,而事实上到底是从哪开始执行的呢? system_stm3210x.c文件里有个SystemInit()函数,就是对时钟的设置。而这个SystemInit()在哪调用的呢,就是启动文件先调用了,然后才进入到mian()函数。 3.有些启动文件定义了堆栈大小,可以在这里进行修改。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
568浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:25 , Processed in 0.893795 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号