- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32建工程之寄存器版本
昨天很快看懂了例程,自鸣得意,哇哦,怎么这么简单啊,结果建个工程建的捉急,逮着光盘各种翻资料,丫的全是照着建好的例程讲,终于功夫不负有心人,在今天找到一节视频里有讲,把模板建起来了,西湖的水,我的泪。。。
记录一下流程
首先新建一个文件夹,存放此次的工程嘛,为了移植的更有条理,建几个文件夹分别存放固件库的各种文件。在此建了四个文件夹,“CORE”,”OBJ”,”STM32”,”USER”,名字可以自己取,也可以不建,全堆一起,如果你觉得这样真的好的话。
第一个是“CORE”,放的东东直接贴过来我也不知道是什么,照着搞。有道了一下core是核心的意思。
值得提一下startup_stm32f10x_hd.s,这个的选择得看你所使用的开发板CPU的型号,我的小飞号战舰gě gě型号STM32f103zet,具体意思百度上有,那个z的意思是512K字节Flashstartup_stm32f10x_hd.s。这种东东还有很多,路径如下,自己百度用哪种
OBJ先不用管,用来存放自动生成的一些文件。
STM32,寄存器库,里面贴两个文件夹,一个src,一个inc,一个放.c一个放.h。
USER,先看图:
通过路径找到这几个文件贴到USER,可能有几个文件冲突了,不用管,跳过即可。
打开Keil,开搞
新建工程,不用说吧
千万别选ARM,选STM。
选完型弹出这个,点否,手动添加。
右键Target 1,选中Manage Conponents
建Groups最好和文件夹的名字一致,方便添加 .c文件
点击魔术棒图标
之前把 .c文件添加了,绝不觉得差点什么呢?肯定还得添加 .h头文件舍
在此,把所有包含的 .h文件路径添加进去
STM32F10X_HD,USE_STDPERIPH_DRIVER
很重要,不加上会报错
重中之重,千万别忘了还有一个 .s文件,可以直接CODE右键add
编译,报错
因为这个主函数不合规矩,全部删了,就可以开始编写你自己的函数了
贴一段代码,可以用来试试模板是否建立成功
#include stm32f10x.h
//ALIENTEK 战舰STM32开发板工程模板
void Delay(u32 count)
{
u32 i=0;
for(;icount;i++);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能PB,PE端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0--PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOB, GPIO_InitStructure); //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1--PE.5 端口配置, 推挽输出
GPIO_Init(GPIOE, GPIO_InitStructure); //推挽输出 ,IO口速度为50MHz
GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 输出高
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
}
}
自此,工程算是建完了,呼呼,被那个 .s文件折腾了一下午,接下来是仿真,我所使用的是J_LINK仿真器。
Output 勾上箭头指的选项Create HEX File
然后点击Select Folder for Objects…
选择OBJ,这样的话自动生成的文件就会都保存在OBJ里面啦
改好后,别忘了把Use前面的点点
您可能关注的文档
最近下载
- GB50209-2010建筑地面工程施工质量验收规范(新).pdf VIP
- 新苏教版六年级科学上册 第一单元《物质的变化》测试卷(A卷).docx VIP
- 2025年中国便利店发展报告.pptx VIP
- 新苏教版六年级科学上册第一单元《物质的变化》测试卷及答案.pdf VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 住院患者跌倒护理风险评估与护理指导意见.pdf VIP
- 煤矿用防爆电气设备防爆检查标准-培训课件.pptx
- 半导体物理学(第8版)刘恩科课后习题答案解析.pdf
- 新媒体背景下信息技术的发展及其应用分析.pdf VIP
- 一种大吨位玄武岩纤维锚索整体张拉试验系统及试验方法.pdf VIP
文档评论(0)