三、构建工程
万里长城第一步,先把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“来使用。具体的驱动代码在后面会讲。
建议经常练习建工程
我建议每次练习一个题目都重新构建一遍工程,毕竟孰能生巧,在比赛时最好不要在准备工作上出问题。
三、构建工程
万里长城第一步,先把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“来使用。具体的驱动代码在后面会讲。
建议经常练习建工程
我建议每次练习一个题目都重新构建一遍工程,毕竟孰能生巧,在比赛时最好不要在准备工作上出问题。
举报