历史上的今天
返回首页

历史上的今天

今天是:2025年01月02日(星期四)

正在发生

2020年01月02日 | 关于keil5使用注意事项(预定义、路径包含)

2020-01-02 来源:eefocus

终于在不用keil5自带添加库的基础上0 error的新建了一个工程。磕磕绊绊搞了快一个下午,各种小问题搞到崩溃。


首先是库文件添加路径的问题 ,只要是你工程中用到的头文件,都需要在工程选项配置中添加相应的路径,另外,通过一个下午的挣扎,发现最好还是在学习的过程中逐渐构建自己的代码库,最好自己添加需要的库文件,这样便于程序的移植。也便于熟悉各种启动文件。

 

另外一定要注意程序中不能有汉语输入。

千万不要有汉语输入!千万不要有汉语输入!千万不要有汉语输入!

一开始我一直以为是keil坏了,谁知道最后还是发现是自己的错。所以一定要细心。跟着他提示的错误代码行去找,记住,一定要细心。不要老是怀疑别人。一点点汉语输入的空格导致我浪费了两个小时的时间。

找到这行,通常是里面的某个参数或者变量不符合格式。找个 里面的变量 ,把一行全部删除,然后切换英文输入,注意半角英文,如果还是不对的话,那就是你的keil坏了。


总结的合理的文件结构(养成自己的代码风格):

USERS文件:

存放自己编辑的源文件和头文件。工程中包含自己的源文件,路径中包含头文件。另外,在USERS中,最好在包含it.c  and  conf.h。

it中写中断函数,conf中释放自己需要的固件库头文件,屏蔽自己不需要的头文件。也就是说你在lib文件夹中包含了什么固件库,就需要在这里释放什么头文件。这和我们平时编写头文件和源文件的思路一样呀,一个头文件总是跟着一个源文件。


CMSIS文件:

中存放工程都必须的启动代码,core_cm3.c  /  system_stm32f10x.c   /   startup_stm32f10x_hd.s

LIB文件:

中存放程序用到固件库的源程序,同时注意包含misc.c文件。


另外,不要忘了在C++选项卡中写入USE_STDPERIPH_DRIVER,写下这句话就意味着在stm32f10x.c中包含了conf.h头文件,(具体原理点这里)不然需要自己在文件中包含这个头文件,有点麻烦。

 

上面 提到的几个文件的作用

1、core_cm3.c文件

在CoreSupport文件夹中有core_cm3.c和头文件core_cm3.h,它的作用是采用Cortex-M3内核设计的SoC芯片厂商设计的芯片提供了一个进入CM3内核的接口。core_cm3.c中还有一些与编译器(MDK、IAR等)有关的代码。较重要的是core_cm3.c中包含stdio.h头文件,这是一个ANSI C文件,主要作用是提供一些新类型的定义。

2、system_stm32f10x.c文件

DeviceSupport文件夹下是启动文件、外设寄存器定义、中断向量定义层的一些文件,这些文件由ST公司提供。system_stm32f10x.c的主要作用是设置系统时钟和总线时钟。

3、stm32f10x.h文件

这个文件非常重要,是非常底层的文件,包含了寄存器地址和结构体类型的定义,在使用到stm32固件库的地方都要包含它。

3、stm32f10x_it.c和stm32f10x_conf.h文件

stm32f10x_it.c这个文件主要是编写中断程序的,stm32f10x_conf.h被包含在stm32f10x.h文件中主要是配置外设的头文件,我们需要什么在这里打开。

4、startup_stm32f10x_hd.s文件

在这个文件中有一段启动文件,启动文件中先初始化系统时钟,然后才执行主函数,因此我们要注意配置时钟在这个文件里配置。

基本上上面这些就能够完整的编译一个keil5的工程了。

5、关于misc.c文件:

STM32 V3.5版本的库函数中没有原来版本中单独对于NVIC(中断向量嵌套)的外设驱动,把NVIC的外设驱动放在了misc.c中,实际上是代替原来的stm32f10x_nvic.c.

推荐阅读

史海拾趣

Calmos Systems Inc公司的发展小趣事

随着电子行业的快速发展,Calmos Systems Inc公司意识到技术创新是企业发展的核心动力。因此,公司加大了研发投入,引进了一批高水平的技术人才,建立了完善的研发体系。经过多次试验和失败,公司成功开发出了一款具有颠覆性的新技术,这项技术在行业内引起了广泛关注。凭借这一技术创新,公司在市场上获得了竞争优势,实现了快速发展。

台湾奇力(Chip)公司的发展小趣事

奇力公司一直致力于环保和社会责任。在生产过程中,奇力公司采用环保材料和工艺,减少对环境的影响。同时,奇力公司还积极参与社会公益活动,回馈社会。这种环保和社会责任的理念也赢得了客户和社会的认可和支持。

以上五个故事分别从不同角度展现了台湾奇力(Chip)公司的发展过程。这些故事不仅体现了奇力公司的技术实力和市场策略,也展现了其持续创新、绿色环保和社会责任的企业形象。

Everspin公司的发展小趣事

Everspin与众多知名企业和机构建立了合作伙伴关系,如戴尔电脑、Koyo Electronics Industries等。这些合作伙伴的认可和支持不仅为Everspin带来了更多的商业机会,也进一步提升了其在行业中的影响力。同时,Everspin还积极与客户沟通合作,根据客户需求提供定制化的解决方案,赢得了客户的广泛赞誉。

全志(Allwinner)公司的发展小趣事

近年来,全志科技积极寻求与其他行业的合作,共同推进技术的创新和应用。例如,全志与安克创新建立了战略合作伙伴关系,在AI技术在智能硬件领域的创新研究、落地应用和推广方面展开了深入合作。这种合作模式不仅提升了全志的科技实力和市场影响力,也为公司的未来发展注入了新的活力。

以上五个故事分别展示了全志科技在创始与崛起、技术突破与市场认可、抓住市场风口、产品线拓展与战略转型以及合作与共赢等方面的发展历程。这些故事共同构成了全志科技在电子行业中的成长轨迹,也展示了其在面对市场挑战和机遇时的应对策略和决心。

ADTech公司的发展小趣事

AdTech公司一直注重创新,不断投入研发资源以推出新产品和解决方案。公司通过优化芯片结构设计、提升器件封装技术等手段,不断提升QCL的性能和稳定性。此外,公司还积极探索QCL在新能源、环保等领域的应用潜力,开发出了一系列具有创新性和实用性的产品。这些创新成果不仅提升了公司的核心竞争力,也为行业的发展注入了新的活力。

东晨(DC)公司的发展小趣事

在电子行业的激烈竞争中,东晨(DC)公司凭借一项革命性的技术突破——高效能低功耗的芯片设计,迅速崛起。该公司投入大量研发资源,成功开发出了一款性能卓越、能耗极低的芯片,这一创新成果为智能手机、平板电脑等移动设备提供了更长的续航时间和更快的运行速度。凭借这一技术优势,东晨(DC)公司迅速获得了市场的认可,产品销量节节攀升。

问答坊 | AI 解惑

原创--IAR for AVR入门学习笔记

AVR单片机的编译软件五花八门,用宋丹丹的话就是:那是相当的多 汇编语言的开发平台就不说了(俺不大会,呵呵,说不出什么道道来)。 简单列举几个高级语言的开发平台: WINAVR(GNU GCC AVR); ICC AVR CodeVison AVR IAR for AVR BASIC ...…

查看全部问答>

关于SIM300短信发送的问题

大家好,我是正在使用sim300 GPRS模块,我用AVR mega16单片机控制模块进行短息发送,我用串口调试过了,一点问题也没有,但是我用单片机进行调试的时候就有问题了,大家可以给点建议?…

查看全部问答>

硬盘求救!!!

进系统前提示reboot and select proper boot device or insert boot media in selected boot device and press a key 拿去给售后的人修,说是硬盘坏了,根本就进不去,无法检测,说是只能拿到深圳总部去修。 请问这是怎么回事啊?我看了很多关于 ...…

查看全部问答>

用按纽稳定,用导电橡胶就不稳?

最近做了一块板,按键部分最头痛了! 按键平时10K上拉,按键按下后就会接地,取低电平,按键值会存在一个队列中,在两边接上按键,按按键一切正常。板子上对应每个按键还有一个接触面,用导电橡胶接触,当用导电橡胶碰接触面是,反应有时正常,有 ...…

查看全部问答>

51单片机程序求教怎么才能操作4次那?谢谢了

void zhengti(void) { for (b=0;b 0 && PCA0L >= TIMEOUT)   //高电平持续时间超过120us              {                       ...…

查看全部问答>

关于有符号数和无符号数

通常在8086系统中,计算机是如何判断 有符号数与无符号数呢,例如:1000110100101,如何判断它是一个有符号数,还是无符号数呢? 谢谢各位楼主了,…

查看全部问答>

变卖兰州瑞德研磨机各个部件图纸

变卖兰州瑞德研磨机各个部件图纸 如果需要请联系QQ:790650751 验证:eeworld…

查看全部问答>

大虾,麻烦快给解答下。keil c ,debug 后总是进汇编模式下,还返回不到C,怎么回事

keil c ,debug 后总是进汇编模式下,还返回不到C,怎么回事,刚才还好好的,我也没动那阿。…

查看全部问答>

请教高人register file 和sram 的区别

register file 和sram 是不是内部结构都一样,就是外围电路不同啊另外为什么register file一般都只做成two port的啊,也就是说register file 只作一个端口读一个端口写的忘高人指点!…

查看全部问答>

没有人回答吗?技术保密吗?

初学DSP,以前没有接触过,想省点时间,问问DSP的3.3V的PWM输出如何去驱动IGBT…

查看全部问答>