关键词不能为空

当前您在: 主页 > 英语 >

从51到ARM编程快速入门教程精华.

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 12:49
tags:

-

2021年3月3日发(作者:正前方)




51


< p>
ARM


编程快速入门教程精华



开发环境:


KeilMDK 3.5


硬件平台:


STM32


开发板,


IC



STM32F103VET6


调试工具:


JLINK V8


实验目标:


LED


接在


PB5


,高电平点亮



(一)新建


keil


工程



IC


选择


ST


公司的


STM32F103VE


,< /p>


keil


提示是否


copy

< p>
启动文件,选择是你有没


有读过这个启动头文件?


51


也是同样的启动文件,


51


的那 个启动文件有没有读


过?你知道头文件里面做了什么吗?


C


语言真的从


main


函数开始吗 ?运行时库


是什么?这些资料从什么地方知道?


keil


编译器的行为?



(如果你说头文件是汇编的,没有必要看,那我当我没说)



例如启动文件里面有这么一句,我的问题是


__main < /p>


这个标号在哪里实现的,注


意,这里肯定不是

main


函数



这里跳到哪里去了?还有个问题


[WEAK]


这里是什么意思?有什么用????



Reset_Handler PROC


EXPORT Reset_Handler [WEAK]


IMPORT __main


LDR R0, =__main


BX R0


(二)新建一个


main.c


并且写一个


main


函数,什么都不 做,这和


51


一样了。



void main(void)


{


while (1)


{


}


}


然后因为我需要调试,则设置


jl ink


调试器,在项目属性里面


Debug


标签,


Use J-


LINK/J-TRACE


,然后到


utilities


标签,同样选择


J-LINK /J-TRACK


,并且选择



Setting


按钮,里面的


Programming Algorithm


还是空的,表示


keil


不知道目标是


什么,我添加一个


STM32F10X High-density Flash


,问题,为什么是


High-


desity


?依据是什么? ??全部确认返回。这个时候已经可以编译,开发板上


电,已经可以下载仿真的,虽然程 序什么都没有写。



(三)既然硬件,仿真器,调试都准备好了 ,接着就开始写程序了。



我一直推荐新手花钱买学习板和仿真 器,因为可以排除硬件的问题,让初学者集


中精力去写程序,而不用怀疑硬件有问题,这 点很重要。这阶段主要是看书,了




解这个


IC


的架构,了解指令集,了 解寄存器(别跟我说你找不到这些资


料?


.....




①、

< br>Cortex-M3


权威指南


CnR2

< br>(电子书)


.pdf


②、


ST M3210x


参考手册


.pdf


③、学习板原理图



博客,论坛等多个 帖子,务必要对整个


IC


有个初步的了解。这个过程有点痛


苦,但是值得花这个时间。



(四)开始写


LED


既然我们要操作


IO


口,当然就要 看


IO


口相关的知识。打开


STM3210x


参考手



.pdf


,我的目的只是操作


GPIO




所以我只需要将第五章看 完就


OK


了。章节


比较多,懒得看,根 据一般的经验(楼主,你缺经验了吧?),不说多就


AVR



PIC


而已。操作


IO


一般是两个步骤,第一,操作


IO


控制寄存器,设置


IO



输 出,第二就是送数据。那么很明显,只可能是


GPIOx_CRL GPIOx_CRH




GPIOx_ODR


三个寄存器会有想要仔细阅读这几个寄存 器的介绍后知道,


GPIOx_CRL


是控制


PIN 0-7


的属性的,


GPIOx_CRH


控制


PIN 8-15



ODR


寄存器


当然就是输出数据了,将数据送到这里 就行了。然后,这几个寄存器的地址是多


少?首先看



这个是官方的


datasheet


、,看第四 章,


Mmeory Mapping




为什么看这章?会英文都能猜到吧?,看


PORTB


的地址是


0x40010C00 -


0x40010FFF


,这个就是基地址了。基地址加上偏移 量就能找到具体的寄存器。



例如我需要操作


GPIOB_CRL


的偏移为


00H


,(看

< p>
STM3210x


参考手册


.pdf




ODR


寄存器的偏移为


0CH


那么很自然得出:



GPIOB_CRL = 0x40010C00


GPIOB_ODR = 0x40010C0C


怎么验证我的结论正确?先看


keil


给的头文件



KeilARMINCSTSTM32F10xstm32f10x_map.h


#define PERIPH_BASE ((u32)0x40000000)


#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)


#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)


这样怎么算都能算出


0x40010C00


出来吧??


ODR


寄存器同理。



为了点亮


LED


,我需要将


PB5


(也就是


GPIOB5


)设置为输出 ,并且


ODR


相应


的位写入

< p>
1


,看资料得出


MODE5



bit 20 21


控制的,


CNF5



bit 22,23



MODE5


应该设置


10



0x2)


选择


2MHZ


输出,


CNF5


选择


00



0x0


),通用推挽< /p>


模式,于是将这个值写入



(*volatile unsigned long)0x40010C00 = (2<<20) | (0<<22); //


为简单起见,不管其他


位了



-


-


-


-


-


-


-


-



本文更新与2021-03-03 12:49,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/700062.html

从51到ARM编程快速入门教程精华.的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文