完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前几天有个新需求,使用 STM32 的标准库(STD)做个产品的例程。之前已经做了个 HAL 的,但人家客户不干,非要 STD 的。拖了一周,想起来了,今天就开始做,但是懒啊,直接在网上找了个封装好了的 STD 例程,想直接修修改改,就完事了。
没想到,例程的芯片型号(STM32F103VC)和我手上的开发板(STM32F103C8)不一样,虽然说是都是 STM32F10x 系列,如果要直接在 Keil 上直接调试程序,还是需要把型号选成一样的。没想到在 “Options” 的 Device 把芯片信号选对了之后,就报了一堆的库错误,如下图所示: 其实这种错误,在以前的时候就有遇到过,当时直接就重新下载个一样的芯片型号的例程,直接把问题规避了。老姐长大了,该解决问题了,然后就想了想、查了查。果然,我果然长大了,能解决问题了。 本文就是记录如果解决此问题。 启动文件 咱们先从启动文件《startup_stm32f10x_XX.s》说起。 在工程目录中的 “CMSISstartup” 文件中有好几个启动文件。不同 Flash 容量的芯片型号选择不同的启动文件,否则会报上述的错误。 具体怎么根据芯片容量选呢? 咱们来看看~~~下图是摘至 STM32F103C8T6 官方的 Product Specifications 文档《DS5319: Medium-density performance line ARM®-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 com. interfaces》,这里面就列出了 3 个 Flash 容量等级:
Attention:这里只是针对 STM32F103 而言的。 咱们知道了芯片的 Flash 容量等级划分,咱们再回过头来看看,怎么依据容量等级去选择芯片:
Attention:这里只是针对 STM32F103 而言的。 那倒这里,咱们就可以尝试着把启动文件加入到工程中,再编译下。 是不是有的童鞋的工程还在报错呢? 从报错信息里面可以发现,报错信息都是来自《stm32f10x.h》部分的 Interrupt Number 部分。那咱们来看看这部分有什么特殊? 在 typedef enum IRQn 枚举类型中出现了以下几个条件编译语句,这几个条件编译语句决定了Interrupt Number 。那这些条件在哪里定义的呢? #ifdef STM32F10X_LD ...... #endif /* STM32F10X_LD */ #ifdef STM32F10X_LD_VL ....... #endif /* STM32F10X_LD_VL */ #ifdef STM32F10X_MD ....... #endif /* STM32F10X_MD */ #ifdef STM32F10X_MD_VL ...... #endif /* STM32F10X_MD_VL */ #ifdef STM32F10X_HD ...... #endif /* STM32F10X_HD */ #ifdef STM32F10X_HD_VL ...... #endif /* STM32F10X_HD_VL */ #ifdef STM32F10X_XL ...... #endif /* STM32F10X_XL */ #ifdef STM32F10X_CL #endif /* STM32F10X_CL */ 它们的定义来自 Option 中的 C/C++的 Define 里,只要咱按容量输入对应的宏,再编译,是不是就没有问题了呢~~~ 总结 1.依据芯片容量选择对应的启动文件 2.依据芯片容量输入对应的宏条件 |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
1455 浏览 0 评论
3339 浏览 9 评论
3017 浏览 16 评论
3508 浏览 1 评论
9104 浏览 16 评论
1221浏览 3评论
632浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
621浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2363浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1928浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 14:33 , Processed in 1.091587 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号