[工学]STM32笔记实用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档