- 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笔记实用
一、编写程序所需的步骤
1、解压缩,改目录名称,和eww 文件名,以便跟其他程序区分。
2、更改设置:在“stm32f10x_conf.h”关闭不用的外设(在其声明函数前面加注释符号“//”)。并根据外部晶振速度更改其中“HSE_Value”的数值,其单位是Hz。
3、完成各种头文件的包含(#i nclude xxx.h;),公共变量的声明(static 数据类型变量名称;),子程序声明(void 函数名称(参数);)……C 语言必须的前置工作。
4、改写我的程序库里面所预设的模板,再进行其他模块的初始化子程序代码的编写,并在程序代码的开始部分调用。注意:必须记住所有外设的使用需要考虑4个问题:
a) 开时钟RCC(在RCC 初始化中);
b) 自身初始化;
c) 相关管脚配置(在GPIO 初始化中);
d) 是否使用中断(在NVIC 初始化中)
5、编写main.c 中的主要代码和各种子函数。
6、在“stm32f10x_it.c”填写各种中断所需的执行代码,如果用不到中断的简单程序则不用编写此文件。
7、编译生成“bin”的方法:Project\Option\ Linker\Output\Format,里面选择“Other”,在下面的“Output”选“raw-binary”生成bin。
8、编译生成“hex”的方法:Project\Option\ Linker\Output\Format,里面选择“Other”,在下面的“Output”选“intel-extended”,生成a79直接改名成为hex 或者选中上面的“Output Flie”在“Overrride default”项目里面改扩展名为hex。使用软件界面的Debug 烧写并按钮调试程序。注意,ST-Link-II 是直接将程序烧写进Flash 进行调试,而不是使用RAM的方式。
1、一共24个库,不可能都学,都学也没用。按照我的工作需求必须学的有16个,这16个也不是全学。主要学习来源是各种例程代码、“固件函数库用户手册”和“参考手册”。具体学习方法是通读不同来源的程序,在程序中找到相关的函数库的应用,然后再阅读相关文档,有条件的实验。对于内容的选择方面,根据入门内容和未来应用,将所涉及的范围精简到最低,但是对所选择的部分的学习则力求明确。以下是我按照自己的需求对程序库函数排列的学习顺序:
a) 绝大部分程序都要涉及到的库——flash,lib,nvic,rcc,只学基础的跟最简单应用相关必用的部分,其他部分后期再返回头学。
b) 各种程序通用但不必用的库——exti,MDA,systic,只通读理解其作用。
c) DEMO 板拥有的外设库——gpio,usart,编写代码实验。
d) 未来需要用到的外设的库——tim,tim1,adc,i2c,spi,先理解等待有条件后实验。
e) 开发可靠性相关库——bkp,iwdg,wwdg,pwr,参考其他例程的做法。
f) 其他,根据兴趣来学。
STM32学前班教程之六:这些代码大家都用得到
2、阅读flash: 芯片内部存储器flash 操作函数
我的理解——对芯片内部flash 进行操作的函数,包括读取,状态,擦除,写入等等,可以允许程序去操作flash 上的数据。
基础应用1,FLASH 时序延迟几个周期,等待总线同步操作。推荐按照单片机系统运行频率,0—24MHz 时,取Latency=0;24—48MHz 时,取Latency=1;48~72MHz 时,取Latency=2。所有程序中必须的
用法:FLASH_SetLatency(FLASH_Latency_2);
位置:RCC 初始化子函数里面,时钟起振之后。
基础应用2,开启FLASH 预读缓冲功能,加速FLASH 的读取。所有程序中必须的
用法:FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
位置:RCC 初始化子函数里面,时钟起振之后。
3、阅读lib:调试所有外设初始化的函数。
我的理解——不理解,也不需要理解。只要知道所有外设在调试的时候,EWRAM 需要从这个函数里面获得调试所需信息的地址或者指针之类的信息。
基础应用1,只有一个函数debug。所有程序中必须的。
用法: #ifdef DEBUG
debug();
#endif
位置:main 函数开头,声明变量之后。
4、阅读nvic:系统中断管理。
我的理解——管理系统内部的中断,负责打开和关闭中断。
基础应用1,中断的初始化函数,包括设置中断向量表位置,和开启所需的中断两部分。所有程序中必须的。
用法: void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStr
您可能关注的文档
最近下载
- 2024-2025学年四川省成都市第七中学高一(上)月考物理试卷(10月)(含答案).docx VIP
- 育婴员职业守则课件.pptx VIP
- 蔬菜生产技术课程标准.docx VIP
- 2025中考语文现代文阅读总复习-第1部分 专题12:记叙文阅读之主旨把握(讲义)(教师版).docx VIP
- 硅铁冶炼培训课件.pptx VIP
- 水土保持工程监理规划.pdf VIP
- 政务云平台 第4部分:系统部署和迁移要求_地方标准编制说明.pdf
- DB37T-政务云平台监管指标体系及编制说明.pdf VIP
- 高中物理必修二第一章检试测卷.doc VIP
- DB37T 4394.4—2024政务云平台 第4部分:系统部署和迁移要求.pdf VIP
文档评论(0)