完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
三、构建工程
万里长城第一步,先把stm32工程给建立起来,构建工程需要用到比赛提供的STM32固件库和keil keil的安装请参照网上的各种教程,多的数不清~ 3.1 建议使用keil4 这里需要特殊说明一下,比赛时提供的是keil4,而如果你平常训练使用keil5的话主要有两点不同: keil4没有代码自动联想补全功能,所以如果你使用keil5进行平常联系,我建议你关掉代码联想功能。 keil4在设置那个Colink下程序进板与keil5有些许的差别,我下面在构建工程时会讲到如何设置。 综上所述,我建议在平常联系就跟比赛时一样采用keil4,避免一些不必要的麻烦。 3.2 构建工程 首先在先在一个目录下(磁盘上的任何地方)建立一个文件夹 可以看到我在C盘目录下建立了一个名叫test的文件夹 之后在test文件夹下建五个文件夹 CORE: 用来存放内核文件 FWLIB:用来存放固件库的源文件和头文件 HARDWARE:用来存放驱动程序代码 OUTPUT: 用来存放在编译过程中产生的中间文件 USER: 用来放用户文件和main函数文件,以及把工程项目建立在此处 接下来便是往这五个文件夹里copy东西了,打开比赛提供的STM32固件库V3.5 可以看到在文件夹“STM32F10x_StdPeriph_Lib_V3.5.0”的内容有: 给CORE文件夹里添加文件 将Libraries-》CMSIS-》CM3-》CoreSupport文件夹下的“core_cm3.c和core_cm3.h“文件放入CORE文件夹内 将Libraries-》CMSIS-》CM3-》DeviceSupport-》ST-》STM32F10x-》startup-》arm文件夹下的”startup_stm32f10x_md.s“放入文件夹内 最终CORE文件夹内的文件有: 给FWLIB文件夹里添加文件 将Libraries-》STM32F10x_StdPeriph_Driver文件夹下的“inc文件夹和src文件夹”一起放入FWLIB文件夹内 最终FWLIB文件夹内的文件有: 给USER文件夹里添加文件 将Libraries-》CMSIS-》CM3-》CoreSupport-》ST-》STM32F10x文件夹下的“stm32f10x.h、system_stm32f10x.c和system_stm32f10x.h”放入USER文件夹内 将Project-》STM32F10x_StdPeriph_Template文件夹下的“main.c、stm32f10x_conf.h、stm32f10x_it.c.c和stm32f10x_it.h”放入USER文件夹内 最终USER文件夹内的文件有: 打开keil4,新建工程 点击keil4中Project-》New uVision Project: 将工程建立在我们的test-》USER文件夹下,命名为test: 芯片选择为STM32F103RB: 添加工程文件 点击这个组建来修改和添加目录和文件: 将Project Targets修改为”test“,test下增加4个Groups分别为”CORE“、“FWLIB”、“USER”、“HARDWARE”: 点击Add Files,把CORE文件夹下的core_cm3.c和startup_stm32f10x_md.s添加到CORE: 把USER文件夹下的 main.c、stm32f10x_it.c和system_stm32f10x.c添加到USER: FWLIB里面添加的是需要用到的库函数源文件,可以全部添加也可以只添加要用到的。我在这里把FWLIB-》src文件夹下所有库函数源文件都添加进来(其实没有必要,但也仅仅是编译时慢了些): 此时,可以看到keil4里左侧的项目目录已经发生了变化 打开main.c把里面所有文件清空 写下以下代码: int main() { while(1) { } } 写过嵌入式代码的童鞋应该对这两行代码并不陌生,main.c 文件最终样式: 对工程进行相关设置 点击Target Options…,进入工程设置的组件: 在Output中点击”Select Folder for Objects…“: 选择OUTPUT文件夹: 在C/C++中的Define里填写 USE_STDPERIPH_DRIVER,STM32F10X_MD 这一句话可以背过也可以在stm32f10x.h的95行找到: 填写后效果为: 随后点击Include Path的选项增加头文件路径,分别添加CORE、FWLIB-》inc、HARDWARE、USER: 在Debug中点击右边的Use并选择CooCox Debugger: 点击Settings,并在Debug选项里选择Adapter为Colink: 再在Flash Download里点击Add,添加“STM32F10X Med-density Flash”: 最后一步也是keil4和keil5有区别的地方,keil4需要在Utilities中选择CooCox Debugger(这一步keil5不需要): 设置完后,编译程序并下板子 这下全部都设置完了,点击OK后,点击Build会得到 “0 Error(s), 0 Warning(s)”: 将生成的可执行文件下到板子里点击Download组件(如果下板子失败,把工程关闭重新打开,keil4有bug): 至此一个工程已经全部构建完毕 3.3 对于构建工程的个人建议 建议自己构建工程 你可以选择直接使用比赛时提供的液晶驱动例程,也可以选择自己构建工程。 我建议自己构建工程,个人认为液晶驱动例程的结构不清晰,自己构建的用着顺手。 驱动文件编写和存放 我把所有驱动文件都存在HARDWARE文件夹下。 每次新建一个文件,保存为.c或者.h文件都存在HARDWARE文件夹里,并在main.c中调用。 比如写LED的驱动,点击New就新建了一个文件,系统自动命名为”Text1“: 接下来点击Save,将文件命名为”led.c“并保存到HARDWARE: 同样的再创建一个新文件,命名为”led.h“并保存到HARDWARE,双击左侧Project里的HARDWARE将”led.c“添加进工程: 添加完后可以看到左侧Project里的HARDWARE目录下出现了”led.c“: 接下来便是编写”led.c“和”led.h“代码,之后在main.c里include ”led.h“来使用。具体的驱动代码在后面会讲。 建议经常练习建工程 我建议每次练习一个题目都重新构建一遍工程,毕竟孰能生巧,在比赛时最好不要在准备工作上出问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
4515个成员聚集在这个小组
加入小组3337 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4266 浏览 1 评论
4292 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:35 , Processed in 0.664126 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号