- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一部分有人说MDK5安装完了后没有芯片,那是因为我们没有安装芯片驱动。安装方法1、在线安装点击UP to data即可安装方法2、离线安装下载DFP文件直接双击或者使用MDK打开,安装即可。第二部分当我们习惯了51的工程建立后,我们往往会被STM32的工程结构吓到,但是我想说的是,在很多场合我们能够见到的常常是STM32这样的工程。STM32工程复杂的原因是因为我们调用了自己配置的库,而51直接调用了keil自带的库。这是根本差别。那么,为什么STM32不用MDK自带的库,原因很简单,STM32库的更新太快,以至于不同版本的MDK自带的库不相同,为了使得一个Project能够顺利打开,我们就在工程中自己附带一个库,当工程文件复制到别出后,库文件也随之复制到了那个地方,这样这个工程仍然能打开。stm32跟51不同,51一般都用自带的库,如reg51.h,我们其实调用的是KEIL安装目录下面的文件而stm32需要自己配置库,比如stm32f10x.h在一个其实不止stm32,好多东西都是要我们自己配库的如ucos,zigbee等,只是我们接触太少而已。要配置好一个工程,我们需要将工程文件分类,然后放在不同文件夹放在不同文件夹中,方便管理,我可以将stm32的文件分为如下几种:1工程文件,即project2不作修改的核心文件,即CMSIS3用户文件,即USER,如main.c注,用户文件包括一此需要修改的官方库文件,如stm32f10x_conf等4启动文件,即STARTUP,放启动文件5库支持文件,LIB,放官方库的外设库文件以上5个文件夹是我们主动放文件的文件夹还有两个文件夹,是被动存放的,即编译产生的各种输出文件分别是6OUTPUT7LIST所以,配置一个工程,我们首先要建立这7个空文件夹总结构这个stsw开头的文件就是官方的库文件,所有的要用到的库都是从这个压缩包中提取的,里面有用的文件夹就两个:即libraries和project,使用方法如下图按照上图将各个文件分别放入后面对应的文件夹中即可。压缩打包后可以作为一个不含工程文件的模板。此时,七个文件夹中我们使用了4个文件夹,还剩3个。打开MDK,新建工程,建立工程时,我们将工程建立在project中,这样我们的文件配置算作好了,但在工程中我们还没有添加这些文件。添加时,mdk中有一个三个方块的图标,点进去可以看到有三格,分别位于左中右,左边我们一般只建立一个文件夹名字随便,中间建立4个,分别对应上面主动放文件的4个,即user.lib.cmsis.startup,但是priject不需要管,最右边是我们要向中间格子建立的那些文件夹放文件,比如,选中中间的cmsis文件夹,然后在最右边添加之前放在cmsis中的文件即可,其他同理,点击确定我们可以发现mdk左边出现了我们刚才整理的文件结构。如下图点击三个方块图标旁边的一个图标,有点像望远镜的那个。在output里面的路线中选刚才建立的output,勾选生成hex在listing中的路线选择刚才的LIST在c/c++中的define中填写STM32F10X_HD,USE_STDOERIPH_DRIVER,其中第一个跟你的startup文件对应,在下面的includes中填加所有的含有头文件的文件夹,共有3个,即user,cmsis,lib/inc。确定,ok工程配置完成你可以作成一个压缩包,把它作为一个含有工程文件的模板第三部分通过观察库手册和stm32的官方手册,我们都发现一个问题,所有的内容都以外设为依据来分类。其实,stm32的代码说白了就是调用各种外设(省略了一些逻辑代码),而stm32库的外设的的参数统一放在相应的一个结构体中,即,XXX_InitTypeDef中,例如GPIO的参数有我要醒置哪个IO口(GPIO_Pin_x...),IO口的模式(MODE,即输入还是输出,上拉还是模拟,开漏还是推挽),IO口传输的速度(SPEED),这些参数为了方便管理统一放在一个结构体中,即GPIO_InitTypeDef ,因此,我们只要给GPIO_InitTypeDef这个结构体赋然后使其生效即可。于是,stm32的代码我们就以外设为分类依据,将同一个外设的代码放到一个涵数中,以GPIO为例,我们定义一个GPIO_Configuration()的涵数,然后将GPIO相关的代码放到这里面即可,然后在main()中调用这个函数那么xxx_Configuration()中要写什么内容呢?就是前面说的东西,给相应的结构体赋值,然后使其生效因此,STM32代码的大框架就是这样了。int main(){ void GPIO_Configuration(); //初始化IO口void USART_Configuration();//初
您可能关注的文档
最近下载
- 180°剥离力测试规范.doc VIP
- 行政执法人员资格认证通用法律知识考试单选题.docx VIP
- PP料 MSDS 物质安全表.pdf VIP
- 2025下半年高级软件水平考试(系统规划与管理师)案例分析真题及解析.pdf VIP
- 2025至2030全屋定制家具行业市场深度研究与战略咨询分析报告.docx VIP
- 福建省工会系统经审业务技能竞赛知识题库及答案(1692题).docx VIP
- 变电站脚手架专项施工方案.pdf VIP
- 道闸维修合同协议.docx VIP
- 16MR607 城市道路─节能环保型聚氯乙烯市政护栏.docx VIP
- 第一单元 100以内数加与减(二)教案-2025-2026学年北师大版二年级数学上册.pdf VIP
文档评论(0)