ARM学习心得体会

合集下载

ARM学习心得

ARM学习心得

ARM学习心得1.ARM是32位精简指令集处理器2.ARM7 3级流水线冯.诺依曼结构3.ARM9 5级流水线哈佛结构4.只有Load/Store指令可以访问存储器5.支持数据cache和指令cache6.处理器模式:(1).用户模式(usr)(2).快速中断模式(fiq)(3).外中断模式(irq)(4).管理模式(svc)(5).中止模式(abt)(6).未定义模式(und)(7).系统模式(sys)7.工作模式:(1).ARM指令集 32位(2).Thumb指令集 16位8.ARM处理器含有37个寄存器,包括31个通用寄存器和6个状态寄存器9.R13(SP-堆栈寄存器)R14(LR-链接寄存器)R15(PC-程序计数寄存器)CPSR(当前程序状态寄存器)SPSR(备份程序状态寄存器)10.小端模式:高地址位存放高数据位,低地址位存放低数据位;大端模式与之相反11.寻找方式:(1).立即数寻找立即数为8位以#开头(2).寄存器寻找(3).寄存器移位寻找(4).寄存器间接寻找(5).基址变址寻找(6).多寄存器寻找(7).相对寻找(8).堆栈寻找12.常用指令解析:(1).MOV MOV Rd,operand2 只适用于寄存器与寄存器或寄存器与立即数之间(2).MOVS 影响CPSR中的标志位(3).MVN MVN Rd,operand2 数据取反传送(4).LSL LSL n 逻辑左移(5).LSR LSR n 逻辑右移(6).ASL ASL n 算数左移相当于乘2(7).ASR ASR n 算数右移相当于除2(8).ROR ROR n 循环右移(9).RRX RRX n 带扩展的循环右移(10).ADD ADD Rd,Rn,operand2 加法(11).ADC ADC Rd,Rn,operand2 Rd=Rn+operand2+c 带进位的加法加上CPRS的C位(12).SUB SUB Rd,Rn,operand2 减法(13).SBC SBC Rd,Rn,operand2 Rd=Rn-operand2+c-1 带进位的减法(14).RSB RSB Rd,Rn,operand2 Rd=operand2-Rn 逆向减法(15).RSC RSC Rd,Rn,operand2 Rd=operand2-Rn+c-1 带进位的逆向减法(16).AND AND Rd,Rn,operand2 Rd=Rn and operand2 逻辑与(17).ORR ORR Rd,Rn,operand2 Rd=Rn or operand2 逻辑或(18).EOR EOR Rd,Rn,operand2 Rd=Rn xor operand2 逻辑异或(19).BIC BIC Rd,Rn,operand2 Rd=Rn and not operand2 位清零(20).CMP CMP Rd,operand2 比较,影响CPSR标志位(21).CMN CMN Rd,operand2 负数比较,影响CPSR标志位(22).TST TST Rd,operand2 位测试,影响CPSR标志位(23).TEQ TEQ Rd,operand2 相等测试,影响CPSR标志位(24).MUL MUL Rd,Rn,operand2 乘法 32位(25).MLA MLA Rd,Rn,Rm,operand2 Rd=Rn*Rm+operand2 乘加 32位(26).UMULL UMULL Rd,Rn,Rm,operand2 Rd=[Rm*operand2](0-31) Rn=[Rm*operand2](32,63) 64位无符号乘法(27).SMULL SMULL ... 64位有符号乘法(28).UMLAL UMLAL Rd,Rn,Rm,operand2 Rd=[Rm*operand2](0-31)+Rd Rn=[Rm*operand2](32-63)+Rn 64位无符号乘加(29).SMLAL SUMLAL... 64位有符号乘加(30).LDR LDR Rn,operand2/=start/=0x010201 加载内存数据(31).STR STR Rn,operand2/=start/=0x012010 数据存入内存(32).LDM 从内存中加载多个数据(33).STM 存储多个数据到内存(34).B B Rn 跳转(34).BL 带链接的跳转改变R14(35).BX 带状态切换的跳转(36).BLX 带链接和状态切换的跳转......13.运用于STM和LDM的模式:(1).IA 每次传送后增加地址(2).IB 每次传送前增加地址(3).DA 每次传送后减少地址(4).DB 每次传送前减少地址(5).FD 满递减堆栈STMFD SP!,{R1-R4} ;将R1-R4的数据存放到SP所指的内存中高寄存器放在高地址位,SP自增4当前SP不存放数据(6).ED 空递减堆栈当前SP存放数据(7).FA 满递增堆栈(8).EA 空递增堆栈14.条件标志位:编码扩展表示式标志位影响意义0000 EQ Z置1 等于操作数0001 NE Z清0 不等于操作数0010 CS/HS C置1 进位/无符号数大于或等于操作数0011 CC/LO C清0 无进位/无符号数小于操作数0100 MI N置1 负数0101 PL N清0 正数或00110 VS V置1 溢出0111 VC V清0 无溢出1000 HI C置1且Z清0 无符号数大于操作数1001 LS C清0且Z置1 无符号数小于或等于操作数1010 GE N等于V 有符号数大于或等于操作数1011 LT N不等于V 有符号数小于操作数1100 GT Z清0且N等于V 有符号数大于操作数1101 LE Z置1且N不等于V 有符号数小于或等于操作数1110 AL 任何状态总是,常忽略1111 NV 从不使用 ---15.子程序参数传递规则:当参数不超过4个时用R0-R3来存放返回值存放在R0中,存放顺序:寄存器编号由小到大当参数超过4个时,前面4个参数按上面规则存放,后面的参数按参数传递顺序右后往前依次入栈16.CPSR结构:31 30 29 28 27 ... 7 6 5 4 3 2 1 0N Z C V Q I F TN:Negative 负数标志位N=1:结果为负数N=0:结果为正数或零Z: Zero 零标志位 Z=1:结果为0 Z=0:结果不为0C: Carry 进位标志位 C=1:C=0:... 有四种情况V: oVerflow 溢出标志位 V=1:V=0:... 有两种情况I:IRQ中断使能/失能 I=1:失能IRQ I=0:使能IRQF:FIQ中断使能/失能 F=1:失能FIQ F=0:使能FIQT:状态标志位 T=1:Thumb状态 T=0:ARM状态4-0:工作模式:10000 usr10001 fiq10010 irq10011 svc10111 abt11011 und11111 sys17.ARM工作模式间的切换(1).切换方式:软件切换、硬件切换(2).除usr外其他的都叫特权模式,在特权模式下可以任意切换其他模式(3).在usr模式下只有通过硬件的方法切换到其他工作模式(4).除usr和sys,其他模式都叫异常模式(5).机器上电复位时,处于svc模式18:C语言和ARM汇编混用的几种方法:(1).内联汇编:在C函数中插入汇编语句使用arm或__arm关键字(2).嵌入式汇编:.........。

ARM9入门学习心得分享

ARM9入门学习心得分享

ARM9入门学习心得分享ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。

在流水线上,ARM7是三级流水线,ARM9是五级流水线。

由于结构不同,ARM7的执行效率低于ARM9。

平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式操作系统。

而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。

本文首先介绍了ARM9的优势及特点,其次阐述了ARM9要学的内容汇总以及书籍推荐,最后介绍了ARM9入门学习心得。

ARM9的优势1)时钟频率的提高虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。

增加的流水线设计提高了时钟频率和并行处理能力。

5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。

在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。

2)指令周期的改进指令周期的改进对于处理器性能的提高有很大的帮助。

性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。

对于采用最高级的语言,一般来说,性能的提高在30%左右。

3)MMU(内存管理单元)ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。

ARM9一般是有MMU的,ARM9940T只有MPU ,不是一个完整的MMU。

这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。

这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。

其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。

arm实训总结

arm实训总结

arm实训总结标题:ARM实验实训总结报告一、前言本次ARM实验实训是我对嵌入式系统设计与开发的一次深度实践。

通过这次实训,我对ARM微处理器的结构原理、指令集以及基于ARM架构的嵌入式系统开发流程有了更为直观和深入的理解。

二、实训内容回顾在实训过程中,我们主要围绕ARM Cortex-M系列处理器进行学习和实践。

首先,从理论层面,我们系统地学习了ARM体系结构、工作模式、存储器管理、异常处理等基础知识;其次,在实践环节,我们使用Keil MDK等开发工具进行了汇编和C语言编程,完成了中断服务程序设计、定时器应用、串口通信等多个实战项目。

三、实训过程及收获1. 硬件操作与调试:通过对ARM开发板的实际操作,我亲身体验了硬件连接、程序下载、在线调试等环节,对硬件底层的工作原理有了更清晰的认识,也锻炼了我的动手能力和问题解决能力。

2. 软件编程与实现:通过编写和调试ARM汇编和C语言代码,我对ARM的指令集、寄存器配置、中断处理机制等有了深入理解,同时也提升了我的编程技能和逻辑思维能力。

3. 团队协作与交流:在完成复杂项目的过程中,我们分工合作,共同探讨解决方案,这不仅提高了我在团队环境下的工作效率,也锻炼了我与他人沟通协调的能力。

四、实训反思与展望尽管在实训过程中取得了一定的进步,但我也意识到自身在某些方面还有待提升,如对实时操作系统RTOS的理解与应用、硬件驱动程序的设计与优化等。

未来的学习中,我将深化对这些领域的研究,努力提升自己在嵌入式系统开发方面的综合能力。

总结,此次ARM实训是一次宝贵的实践经历,它使我对嵌入式系统的软硬件协同设计有了更深层次的认知,并为我后续从事相关领域的工作或研究打下了坚实的基础。

五、结语ARM实训不仅是对我现有知识的检验,更是对未来专业技能的磨砺。

我会珍视这份实践经验,以此为契机,持续探索并深化对嵌入式系统尤其是ARM架构技术的研究,为我国的科技创新事业贡献自己的力量。

arm实验心得体会

arm实验心得体会

arm实验心得体会在进行arm实验的过程中,我收获了很多知识和经验,也体会到了实验的重要性和意义。

以下是我关于arm实验的心得体会。

首先,在实验中我学习到了关于arm架构的基本知识。

arm架构是一种广泛应用于手机、平板电脑和嵌入式领域的处理器架构。

在实验中,我了解到arm指令集的特点和分类,学会了如何通过汇编语言来编写arm程序。

我能够区分不同的arm寄存器,并熟练运用指令进行数据的读取和存储。

这些知识对于我进一步学习和了解计算机体系结构非常重要。

其次,实验也让我体会到了手动编写程序的乐趣和挑战。

在arm实验中,我需要亲自编写指令并进行调试,这与平时使用高级语言编程的经验完全不同。

手动编写程序需要思考指令的功能和执行顺序,同时需要十分严谨地进行调试和错误修复。

这些挑战锻炼了我的逻辑思维和问题解决能力,同时也为我今后的编程学习打下了良好的基础。

另外,实验还让我深刻认识到了实践的重要性。

光靠理论知识是无法真正掌握一个技能的,必须通过实践来加深理解和应用。

通过亲自编写arm程序,我更加深入地了解了计算机的工作原理和指令执行的过程。

实验也让我意识到了实际操作中可能出现的各种问题和错误,从而提醒我在编程过程中要更加仔细和谨慎。

我在实验中多次因为一小处错误导致程序无法正确执行,这让我更加重视细节和精确性。

此外,实验还提高了我的团队合作能力。

在实验中,我需要与同学们共同研究和解决问题。

通过合作,我们相互帮助、交流意见,并共同进步。

我们互相监督和鼓励,共同完成实验目标。

这锻炼了我的沟通能力和合作能力,也培养了我对团队合作的重视和珍惜。

最后,实验让我对计算机领域的未来充满了信心和热情。

通过亲身参与arm实验,我深刻认识到计算机技术在现代社会中的重要性和广泛应用。

我对于未来计算机技术的发展和创新充满了期待,并希望自己能够为这个领域的进步做出一份贡献。

实验不仅是对知识的检验和巩固,更是对自己兴趣和激情的验证和启发。

总之,通过这次arm实验,我收获了很多知识和经验,也体验到了手动编写程序的乐趣和挑战。

学习嵌入式系统(ARM)的一些想法

学习嵌入式系统(ARM)的一些想法

学习嵌入式系统(ARM)的一些想法在学习单片机的时候学的比较快,在学51 和AVR 的时候都可以说是得心应手。

可能就是手前面学习的影响,认为学ARM 也会比较顺利。

到开始学习ARM 的时候才知道要入门是多么“痛苦”,每天就对着教程、资料折磨。

没有多少是学的明白的,完全不知道怎么学起。

它涉及的内容和知识太多了。

我整理了一下这段时间的学习资料,我已经看完的和我接下来要用的,总共29 G,我前10 年读书用的资料都可能没有这么多。

学ARM 不能再和以前学单片机那样,刚开始时,不能说从哪里开始学。

只有拿着资料、教程慢慢磨。

久了就积累了一定的知识就会明白了,这个过程的滋味只有做过才能体会。

前些天也实在很困惑无从下手。

然后就下定决心从Entry 入手,从CPU 的第一条指令开始,跟着走下去。

这样做的阻力更加大,像在Bootload 里面我就只会读C 和汇编,Makefile、连接脚本、脚本文件、配置文件就没有办法读了。

所以根本就不明白它是这么编译的。

很多人都说不要把ARM 当做单片机来学。

我觉得学嵌入式应该分开内容学习,第一步就是要把它当单片机学起。

把它当单片机学就是要彻底把开发板上的硬件驱动程序全部都学会了(液晶、Nandflash、Norflash、网卡、声卡等)。

对片上资源(串口、usb、ad、DMA 等等)的驱动和CPU 的汇编指令熟练掌握。

这样就为移植bootload 打下了扎实的基础。

把硬件搞定后就学软件了。

学习Linux 系统也是个漫长的过程啊!!!!刚刚见到Linux 的时候,“天啊这东西这么能用啊”。

要学会Linux 的命令和操作(各个软件的操作、各项参数的配置),会使用Linux 了就学习Linux 下的编程(shell 编程、Makefile、连接脚本、C 编程),然后就深入学习Linux 的内核代码,把Linux 的目录结构弄熟了。

把它里外都搞定了。

嵌入式系统设计实训课程学习总结利用ARM微控制器开发嵌入式应用的实践经验

嵌入式系统设计实训课程学习总结利用ARM微控制器开发嵌入式应用的实践经验

嵌入式系统设计实训课程学习总结利用ARM微控制器开发嵌入式应用的实践经验嵌入式系统设计实训课程是计算机科学与技术专业中的一门重要课程,旨在通过实训的形式,让学生掌握ARM微控制器的开发与应用。

在本次课程中,我深入学习了ARM微控制器的基本原理、开发环境的搭建以及嵌入式应用程序的设计与开发。

通过实践环节的训练,我不仅加深了对嵌入式系统的理解,也提高了自己的动手能力与综合应用能力。

以下是我在这门课程中的学习总结与实践经验分享。

一、ARM微控制器与嵌入式系统简介在课程的开始,我首先了解了ARM微控制器的基本概念与原理。

ARM作为一种32位RISC(Reduced Instruction Set Computer)处理器架构,具有高性能、低功耗、低成本等特点,在嵌入式系统中得到了广泛应用。

嵌入式系统是指将计算机系统嵌入到其他设备中,以实现特定功能的计算机系统。

通过学习ARM微控制器与嵌入式系统的基本知识,我对实训课程的学习内容有了更清晰的认识。

二、ARM开发环境搭建在了解ARM微控制器的基本原理后,我开始着手搭建ARM开发环境。

首先,我安装了相应的集成开发环境(IDE),如Keil MDK、IAR Embedded Workbench等。

这些IDE提供了编译、调试和仿真等开发所需的全部工具,并且对ARM微控制器提供了良好的支持。

接着,我下载并安装了相应的软件包,如CMSIS、库函数等,这些软件包为开发ARM应用程序提供了必要的支持。

通过搭建ARM开发环境,我成功地建立了一个稳定、高效的开发平台。

三、嵌入式应用程序设计与开发在掌握了ARM微控制器的基本知识和搭建好开发环境后,我开始进行嵌入式应用程序的设计与开发。

根据实训课程的要求,我选择了一个实际的应用场景,设计了一个基于ARM微控制器的温度监控系统。

该系统通过温度传感器采集温度数据,并通过液晶显示屏实时显示当前温度值。

同时,系统还具备报警功能,当温度超过预设阈值时,会触发报警,提示用户采取相应措施。

ARM课程设计感想


课程设计体会: Βιβλιοθήκη 一周的实训,是我复习和巩固ARM的基础知识,初步掌握ARM系统的设计方法,比较熟练掌握ARM软件和开发板的使用的一个机会。并且可以提高综合运用所学的理论知识独立分析和解决问题的能力。这次实训通过ARM多个程序的组合来实现一些功能。在编程的过程中,只是模仿其它的编程思路,再加上一些自己的思想来满足这次实训的任务,可以说对知识的理解还是有欠缺的。这次的课程设计让我把ARM的理论知识用在实践中,实现了理论和实践相结合,从中更懂得理论的是实践的基础,实践有能检验理论的正确性,让我受益匪浅。 在这次的课程设计中也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世,在设计的过程中培养出了我们的团队精神。
课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程.从中我学会了要脚踏实地迈开第一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
由于我们的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我们十分乐意接受你们的批评与指正。总体来说,像课程设计这种类型对我们的帮助还是很大的,它需要我们将学过的相关知识系统地联系起来,从中暴露出自身的不足,以待改进!

arm心得.

arm心得.第一篇:arm心得.心得体会(许晶)本次实习时间是一周,我们组所选的题目是直流电动机转速控制设计,其要求有:硬件部分要求在LPC2100系列ARM的最小系统的基础上,设计通过按键控制直流电动机速度的驱动电路,要求通过LPC2100内置的PWM发生器控制直流电动机;并将电动机速度通过串口送至PC机。

软件部分要求设计以上功能的脱机运行程序,并在试验室调试通过。

我负责的是硬件部分。

首先我将系统分为两部分。

一是电动机控制驱动电路;二是ARM最小系统。

在电动机驱动中,直流电机控制使用了H桥驱动电路,控制口线为P0.21、P0.22。

在ARM 最小系统中,分为5部分:电源电路、复位电路、JTAG接口电路、RS232串口电路、时钟电路。

在制作原理图中,我查阅了实验指导书和课本。

我所选用的是2114板子。

因为LPC2114是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STM CPU的微控制器,并带有128/256 k字节(kB)嵌入的高速Flash存储器。

128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。

对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。

在这个过程中,我注意到了许多问题。

通过最小系统的制图,我对一些问题逐渐了解,不像刚开始学习一样,感觉什么也不懂,硬装知识。

我画了5部分,这几个部分让我对书上的内容更加深了学习。

如:时钟电路中,我就把时钟系统和晶体振荡两节课程,重新学习。

而在软件设计中,在我的搭档编程完之后,我也对程序进行了研究。

在主程序中,我们用的是i、j表示速度与方向,正转为“+”、反转为“—”;最小速度为1,最大速度为4。

先让电机正向慢慢的加速,加到正传的最大速后,在按下就变成反转,然后在依次加速,往返循环,直至没有按键按下。

所运用的是,调节PWM的占空比就能达到电机的速度调节。

我们组在硬件中遇到的问题并不多,主要是在画各部分原理图时找器件很不熟练,不能很快的找到。

学习arm的心得体会

学习arm的心得体会篇一:ARM学习心得体会ARM四天学习心得体会1.懂得了如何使用IAR的软件使用,使用前要先进行环境的设置,具体见文档IAR使用说明。

2.第一次是学习点亮LED灯,在点亮LED灯中学习到如果要点亮LED灯必须学会调用已经写好的库函数,对系统进行初始化SystemInit ;对IO口进行初始化GPIOInit ;,还得对GPIO口的设置GPIOSetDir--设置GPIO口为输入为1的IO口,设置完成后就可以对IO口成为输入输出方向,当要点亮LED灯时,要使用到GPIOSetValue();函数,当为确定好某个IO口确定时,后一个为0时可以设置LED灯为点亮了,然后就可以对IO口进行设置了,用法和单片机基本一致,具体可以参考程序《闪灯》。

3.蜂鸣器的鸣响很简单,就是首先对蜂鸣器的IO端口进行设定以驱动蜂鸣器,GPIOSetDir( PORT3, 3, 1 ); 当蜂鸣器需要鸣响时,直接对PORT3_3端口进行赋值0《GPIOSetValue( PORT3, 3, 0 ); 》不让蜂鸣器鸣响则是(GPIOSetValue( PORT3, 3, 01); )就可以了。

4.串口的使用串口开始时要初始化出口,并且通过串口打印前会把数据存在数据缓存区里面,如果我们需要通过输入值来控制ARM板子的功能时,可以读取缓存区(UARTBuffer[UARTCount-1])的内容(缓存区的内的数据都是字符型数据【char】)然后就可以通过输入的值来处理,可以用中断方式,也可以用查询方式,可参考串口中断程序5.中断的使用使用中断时需要初始化中断例如:init_timer32(TEST_TIMER_NUM,TIME_INTERVAL); // 初始化定时器 enable_timer32(TEST_TIMER_NUM); //使能定时器使定时器工作 LPC_SYSCON->SYSAHBCLKCTRL |= (1篇二:学习ARM的心得体会arm四天学习心得体会1.懂得了如何使用iar的软件使用,使用前要先进行环境的设置,具体见文档iar使用说明。

arm9实验心得体会

arm9实验心得体会在进行ARM9实验过程中,我积累了许多宝贵的经验和体会。

首先,通过实践我深入了解了ARM9处理器的结构和工作原理。

在实验中,我了解了ARM9处理器的寄存器、指令集和存储结构,并学会了如何进行调试和优化程序。

其次,我学会了使用ARM板进行硬件连接和软件编程。

在实验中,我通过连接实验板和计算机,在Linux环境下进行软件开发。

我学会了使用交叉编译器进行开发,以及编写C语言代码和汇编代码。

通过实验,我对嵌入式系统的开发有了更深的了解。

另外,我还学会了使用ARM调试工具进行程序调试。

在实验中,我学会了使用gdb调试工具和openocd调试工具,对程序进行单步调试和查看寄存器变化。

通过调试,我可以更好地理解程序的执行过程和优化程序的性能。

此外,通过实验我也了解了嵌入式系统的特点和应用。

嵌入式系统具有体积小、功耗低等特点,因此在很多应用领域都有广泛的应用,比如智能家居、车载系统等。

在实验中,我了解了嵌入式系统的应用场景和技术要求,对未来的就业和学习方向有了更明确的认识。

总之,通过ARM9实验,我不仅学到了专业知识,还培养了动手实践的能力和团队合作的意识。

在实验中,我经常面临各种问题和挑战,需要通过合作和沟通才能解决。

这让我意识到在工程实践中,团队合作和交流的重要性,以及自己在团队中的角色和责任。

这些经验对我今后的学习和工作都有很大的帮助。

通过这次ARM9实验,我不仅学到了专业知识,还学会了解决问题和团队合作的能力。

这些经验和体会对我今后的学习和工作都有着深远的影响。

我相信,在未来的学习和工作中,我会继续努力,不断提升自己的技术水平和综合能力,为社会做出更大的贡献。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARM四天学习心得体会
1.懂得了如何使用IAR的软件使用,使用前要先进行环境的设置,具体见文档IAR使用说明。
2.第一次是学习点亮LED灯,在点亮LED灯中学习到如果要点亮LED灯必须学会调用已经写好的库函数,对系统进行初始化SystemInit();对IO口进行初始化GPIOInit();,还得对GPIO口的设置GPIOSetDir--设置GPIO口为输入为1的IO口,设置完成后就可以对IO口成为输入输出方向,当要点亮LED灯时,要使用到GPIOSetValue();函数,当为确定好某个IO口确定时,后一个为0时可以设置LED灯为点亮了,然后就可以对IO口进行设置了,用法和单片机基本一致,具体可以参考程序《闪灯》。
图7
在I2C里面要输出温度值的后面三位小数要经过处理,如图8所示:
图8
10.ADC芯片
在用到ADC芯片时,可以显示阻值或者mv显示,需经过处理如图9所示:
图9
4.串口的使用
串口开始时要初始化出口,并且通过串口打印前会把数据存在数据缓存区里面,如果我们需要通过输入值来控制ARM板子的功能时,可以读取缓存区(UARTBuffer[UARTCount-1])的内容(缓存区的内的数据都是字符型数据【char】)然后就可以通过输入的值来处理,可以用中断方式,也可以用查询方式,可参考串口中断程序
5.中断的使用
使用中断时需要初始化中断例如:
init_timer32(TEST_TIMER_NUM,TIME_INTERVAL); //初始化定时器
enable_timer32(TEST_TIMER_NUM);//使能定时器使定时器工作
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);//能AHB时钟,为GPIO提供时钟源
图4
当MOTOR_CCW时,为反转方式
8.键盘扫描
对键盘进行操作时,可以对键盘进行操作,可以通过串口输入1~8来控制灯的闪动情况,初始化如图5
图5
对键盘的操作时使用可以参考如下图6:
图6
9.I2C
在I2C中首先要在头文件定义一个#define __DEBUG_FLASH,使后面的程序生效。图7所示:
通过定时器就可以在定时器内直接操作例如图1:
图1
定时器的使用操作要先开使能,与定时器的定时方式如Fra bibliotek2图2
6.外部中断
外部中断时要先对外部中断的方式进行设置,是下降沿触发还是上升沿触发方式或其他,
图3
7.步进电机
InitStep(); //步进机相关引脚初始化
对了步进电机的引脚初始化后就可以对步进电机的转动方向进行控制了,如图4
3.蜂鸣器的鸣响很简单,就是首先对蜂鸣器的IO端口进行设定以驱动蜂鸣器,GPIOSetDir( PORT3, 3, 1 );当蜂鸣器需要鸣响时,直接对PORT3_3端口进行赋值0《GPIOSetValue( PORT3, 3, 0 );》不让蜂鸣器鸣响则是(GPIOSetValue( PORT3, 3, 01);)就可以了。
相关文档
最新文档