6482|12

88

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

sw笨笨的STM32学前班教程之四:打好基础建立模板 [复制链接]

1、    新建目录Project_IAR4,按照自己的顺序重新组织dll(驱动);inc、src函数库;settings,其他所有文件全部放这个新建的目录下。
2、    双击打开Project.eww,继续更改内部设置。
3、    需更改的内容列表:
位置和项目    目标    说明
ProjectEdir confignations    新建基于STM3210B的配置    编译目标和过程文件存放
ProjectOptionGeneral OptionTarget    ST STM32F10x    选择芯片类型
ProjectOption C/C++ CompilerPreprocessorAdditional include directories    $PROJ_DIR$
$PROJ_DIR$inc    头文件相对位置,需要包括“map/lib/type”的位置
ProjectOption C/C++ CompilerPreprocessorDefined symbols     空    空白是在Flash里面调试程序,VECT_TAB_RAM是在RAM里调试程序
ProjectOption C/C++ CompilerOptimizationsSize    最终编译一般选择High
调试可选None    None,Low,Medium,High是不同的代码优化等级
ProjectOption LinkerOutput    去掉Overrride default    输出格式使用默认
ProjectOption LinkerExtra Output    打开General Extra Output去掉Overrride default    厂家要求
ProjectOption LinkerConfig    打开Overrride default
$PROJ_DIR$lnkarm_flash.xcl    使用Flash调试程序,如果需要使用RAM调试则改为lnkarm_RAM.xcl
ProjectOption DebuggerSetupDriver     Third-Party Driver    使用第三方驱动连接单片机
ProjectOption Debugger Download    Use flash loader    下载到flash所需的设置
ProjectOption Debugger Third-Party Driver Third-Party DriverIAR debugger driver    $PROJ_DIR$ddlSTM32Driver.dll    驱动文件路径
注1:所有跟路径相关的设置需要根据实际情况编写,相对路径的编写——“$PROJ_DIR$”代表eww文件所在文件夹,“..”代表向上一层。
注2:其他设置使用库函数里面的工程文件的默认选项即可,初学不用了解太多。

4、    需要重新删除并重新添加Project下“FWLib”和“User”的所有文件,为了删减外设模块方便需要在“USER”额外添加“stm32f10x_conf.h”(不添加也可以,需要展开main.c找到它)。然后执行ProjectRebuid All,通过则设置完毕。

5、    完成以上步骤,第一个自己习惯的程序库就建立完毕了,以后可以从“stm32f10x_conf.h”中删减各种库文件,从“stm32f10x_it.c”编辑中断,从“main.c”编写得到自己的程序。最后需要将这个库打包封存,每次解压缩并修改主目录名称即可。

6、    我的程序库特点:
a)    默认兼容ST-LINK-II,IAR EWARM 4.42A,Flash调试,其他有可能需要更改设置
b)    为操作方便减少了目录的层次
c)    为学习方便使用网友汉化版2.0.2固件,主要是库函数中c代码的注释。

后面随着学习深入将在我的模板里面加入如下内容:
d)    加入必用的flash(读取优化),lib(debug),nvic(中断位置判断、开中断模板),rcc(时钟管理模板,开启外设时钟模板),gpio(管脚定义模板)的初始化代码,所有模板代码用到的时候只要去掉前面的注释“//”,根据需求填入相应值就可以了。
e)    因为自己记性不好,所以main函数中的代码做到每行注释,便于自己以后使用。
f)    集成Print_U函数简单串口收发函数代码,便于调试,改变使用Printf函数的调试习惯。
g)    集成使用systick的精确延时函数delay。
h)    集成时钟故障处理代码。
i)    集成电压监控代码。
j)    集成片上温度检测代码。
k)    逐步加入所有外设的初始化模块

下面是我的模板与表格的图版
相关链接:https://bbs.eeworld.com.cn/upfiles/img/20091/2009130221121190.rar
此帖出自stm32/stm8论坛

最新回复

                                 学前班教程,这名字取得。。。  详情 回复 发表于 2010-9-9 18:58
点赞 关注
 

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

程序编写步骤

五、    编写程序所需的步骤
1、    解压缩,改目录名称,和eww文件名,以便跟其他程序区分。
2、    更改设置:在“stm32f10x_conf.h”关闭不用的外设(在其声明函数前面加注释符号“//”)。并根据外部晶振速度更改其中“HSE_Value”的数值,其单位是Hz。
3、    完成各种头文件的包含(#include "xxx.h";),公共变量的声明(static 数据类型 变量名称;),子程序声明(void 函数名称(参数);)……C语言必须的前置工作。
4、    改写我的程序库里面所预设的模板,再进行其他模块的初始化子程序代码的编写,并在程序代码的开始部分调用。注意:必须记住所有外设的使用需要考虑4个问题:
a)    开时钟RCC(在RCC初始化中);
b)    自身初始化;
c)    相关管脚配置(在GPIO初始化中);
d)    是否使用中断(在NVIC初始化中)
5、    编写main.c中的主要代码和各种子函数。
6、    在“stm32f10x_it.c”填写各种中断所需的执行代码,如果用不到中断的简单程序则不用编写此文件。
此帖出自stm32/stm8论坛
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

生成bin和hex的比较庄重的做法

7、    编译生成 “bin”的方法:ProjectOption LinkerOutputFormat,里面选择“Other”,在下面的“Output”选 “raw-binary”生成bin。
8、    编译生成“hex”的方法:ProjectOption LinkerOutputFormat,里面选择“Other”,在下面的“Output”选“intel-extended”,生成a79直接改名成为hex或者选中上面的“Output Flie”在“Overrride default”项目里面改扩展名为hex。
9、    使用软件界面的Debug烧写并按钮调试程序。注意,ST-Link-II是直接将程序烧写进Flash进行调试,而不是使用RAM的方式。
此帖出自stm32/stm8论坛
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 

IAR有许多生成bin和hex的方法,自己喜欢即可

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 

3楼的图,旁边有个Extra Output

可别浪费了,呵呵。

ST-LINK必须用simple-code(.sim).格式。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 

学习

                                 新手来学习学习
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

8
 

写得很好的说~!

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 写得很好!!谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 学习,长见识。
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

宇宙尘埃

11
 
                                 学习了。
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 很好的学习教程嘛
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 学前班教程,这名字取得。。。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表