关于keil5使⽤注意事项(预定义、路径包含)
system的头文件2017.12.17  下午
终于在不⽤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中,实际上是代替
原来的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。