KIEL5编译stm32代码显示cannot open source input file "core_cm3.h": No such file or directory?

2.ST公司的官方固件库

3.ST公司的官方标准库

可以参考一下别的博主的发文,这里就不再进行说明

2. 将准备的官方固件库安装在KEIL 5软件下

固件库的安装主要是为了自己开发的芯片能在MDK当中找到
会自动安装在KEIL 5的文件目录下

3.开始新建标准库的工程

 首先,先创建一个空白的文件夹,命名由自己来决定
 然后在里面再次创建4个文件夹
 分别命名为(这里的命名是为了方便自己进行记忆与使用,并无强制要求)

4.之后就是往相应的目录中,存放需要用到的文件。

 在CORE目录中需要加上三个启动文件
 
 BOJ目录是存放工程的编译信息的,需要在KEIL 5软件中进行目录的更改
 在STM32F10x_FWLib目录下存放来自固件库的外设标准驱动


添加自己定义的C文件,也同样需要进行位置绑定)
第一次写,写的不好多多包涵

出现这个问题的原因主要有MDK的安装路径为中文,或电脑的用户名为中文

通过【此电脑】-【属性】-【高级系统设置】-【环境变量】

发现用户变量中出现中文字体

解决方案:找到变量 TEMP 和 TMP,将变量值中的“%USERPROFILE%”使用“C:\user\default”代替,重启电脑,再次打开工程,就可编译成功了!!

原因分析:在安装软件时,这里出现了中文

已经下载好对应型号的CH340驱动,仍然没有显示出串口

解决方法:通过【管理员权限】安装驱动,即可解决!

3、串口配置波特率与实际波特率不一致

现象:,软件配置为115200,同时串口调试助手设置为115200,此时接收信息为乱码

通过不断改波特率,最终38400显示正常

原因:排除硬件的问题,一般是时钟配置问题。那么就从从串口的时钟源入手。

解决方法:定位到stm32f10x.h,其中HSE(外部高速晶振)的值需要根据外部实际晶振的值进行更改,将HSE_VALUE的值改为8000000,即可解决问题

 4、移植正点原子例程的FATFS文件操作系统时,遇到的芯片RAM或ROM的空间不足

 首先第一种方法:点击魔术棒->点击target,适当增加方框中的RAM,ROM的大小

 第二种方法:配置优化等级:点击魔术棒->点击C++   (优化等级越高,程序优化的就越多)

 但是以上2种方法治标不治本,最根本的解决方法是找出哪个文件占用ROM/RAM的多少,进而根据有没有用进行删减优化代码

 程序编译后,打开.map文件查看

简单的说:map文件是通过编译器编译之后,集程序、数据及IO空间的一种映射文件。

很多技术牛逼的工程师在遇到内存越界,或溢出的情况,首先想到的就是分析map文件。通过map文件可以知道函数大小,入口地址等一些重要信息。

我们在Keil中最常见的就是在编译之后,编译窗口会显示类似如下一段关于程序和数据大小的信息

错误:#268:声明可能不会出现在可执行语句块后“ 即变量应在主函数开头声明,不能出现在可执行语句后面

我要回帖

更多关于 input source选什么 的文章

 

随机推荐