欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    arm实验指导书.docx

    • 资源ID:51228892       资源大小:2.14MB        全文页数:210页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    arm实验指导书.docx

    嵌入式系统及应用实验指导书陈力平上海第二工业大学2014.8目录实验一、MDK入门操作1实验二、GPIO实验(1)15实验二、GPIO实验(2)24实验三、DMA实验38实验四 STM32中断系统实验47实验五、ADC实验(1)58实验五、ADC实验(2)70实验五、ADC实验(3)79实验六、DAC实验(1)88实验六、DAC实验(2)96实验七、定时器实验(1)106实验七、定时器实验(2)112实验七、定时器实验(3)121实验七、定时器实验(4)131实验七、定时器实验(5)144实验八、USART实验(1)155实验八、USART实验(2)171实验八、USART实验(3)177附录1:STM32F107VR引脚定义表187附录2:GPIO初始化库函数分析195附录3:实验箱电路原理图202实验一、MDK入门操作一、 实验目的 1. 掌握MDK集成开发环境应用;2. 学会新建一个MDK工程;3. 学会组织和管理源文件;4. 学会配置MDK参数选项。二、 实验设备硬件:PC机,嵌入式ARM开发实训平台;软件:WindowsXP 操作系统,RealViewMDK (Keil Vision4) 集成 开发环境,STM32固件库函数等。三、 实验内容与操作步骤1. 创建一个MDK工程(1) 创建一个Demo文件夹 在Demo文件下,分别建立:a) 创建子文件夹User,用于存放源程序;b) 创建子文件夹Project,KEIL工程文件;在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。图1 创建文件夹(2) 复制源代码到Demo文件夹a) 把Libraries文件夹整体复制到Demo文件夹下。这是ST的标准库,是以源代码形式提供的。提示:ST的固件库可以从ST官方网站免费下载( stm32f10x_stdperiph_lib.zip),Libraries文件夹通过解压固件库得到,本指导书中的实验所使用的标准库版本为3.1.2,随嵌入式ARM开发实训平台提供。 图2 复制库文件夹b) 复制演示程序到DemoUser文件夹。提示:演示程序由指导教师提供。图3 复制演示代码文件(3) 新建一个Keil MDK工程a) 启动Keil uVision4,点击菜单 New uVision Project,新建一个工程,命名为new_project。图4 创建工程文件b) 选择CPU类型为 STM32F107VC (是ARM开发实训平台选用的CPU型号)。图5 选择芯片c) 当提示是否复制启动代码时,选择否。 提示:否表示用库中的启动代码,不用Keil软件自带的启动文件代码。d) 右单击Target1/执行Add Group.命令 ,功能是 添加Group ,添加后参照下图更改名称,目的便于代码管理。图 6 创建GROUP且更改名称提示:User : 存放源代码;RVMDK : 存放启动代码文件(汇编语言);StdPeriph_Driver : 存放ST标准库函数文件;CMSIS : 存放CMSIS接口文件(属于库的一部分)。e) 在上述文件夹创建以后,依次添加文件。参照下图示进行添加:Ø 在User文件夹下添加文件;文件路径:DemoLibrariesCMSISCoreCM3startuparm图 7 右单击菜单命令选项图 8 添加的文件Ø 在RVMDK文件夹下添加文件 文件路径:DemoLibrariesCMSISCoreCM3startuparm。图9 选择汇编文件(*. s)Ø 在stdPeriph_Driver文件夹下添加文件 设备驱动函数文件路径:DemoLibrariesSTM32F10x_StdPeriph_Driversrc图10 选择设备文件Ø 在CMSIS文件下夹添加文件CMSIS接口文件路径:DemoLibrariesCMSISCoreCM3图11 选择接口文件(4) 源代码程序(main.c 文件),应用程序示例。#include "stm32f10x.h"/* 为了使用编程书写方便,定义几个控制LED开关的宏 */#define LED1_ON( )GPIO_SetBits(GPIOD, GPIO_Pin_7); /* PD7 = 1 点亮LED1 */#define LED1_OFF( )GPIO_ResetBits(GPIOD, GPIO_Pin_7);/* PD7 = 0 熄灭LED1 */#define LED2_ON()GPIO_SetBits(GPIOD, GPIO_Pin_13); /* PD13 = 1 点亮LED2 */#define LED2_OFF()GPIO_ResetBits(GPIOD, GPIO_Pin_13);/* PD13 = 0 点亮LED2 */#define LED3_ON()GPIO_SetBits(GPIOD, GPIO_Pin_3); /* PD3 = 1 点亮LED3 */#define LED3_OFF()GPIO_ResetBits(GPIOD, GPIO_Pin_3);/* PD3 = 0 点亮LED3 */#define LED4_ON()GPIO_SetBits(GPIOD, GPIO_Pin_4); /* PD4 = 1 点亮LED4 */#define LED4_OFF()GPIO_ResetBits(GPIOD, GPIO_Pin_4);/* PD4 = 0 点亮LED4 */*延迟函数*/void Delay(_IO uint32_t nCount)/* _IO 就是volatile, 加上这个后可以避免延迟函数被编译器优化掉 */for(; nCount != 0; nCount-);/* 主函数 */int main(void)/*是ST库中的函数,函数实体在LibrariesCMSISCoreCM3system_stm32f10x.c配置内部Flash接口,初始化PLL,配置系统时钟的频率系统时钟缺省配置为72MHz */SystemInit();/*配置GPIO, 将连接LED1-4的GPIO设置为推挽输出 */GPIO_InitTypeDef GPIO_InitStructure;/* 定义1个结构体变量 */* 打开GPIOD 时钟 */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);/*初始化 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_13| GPIO_Pin_3 | GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;/* 推挽输出模式 */GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD, &GPIO_InitStructure);/* 调用库函数初始化GPIO */*while循环实现简单的跑马灯功能。*/while (1)LED1_ON();/* 点亮LED1 */ Delay(0xAFFFF);/* 插入延时 */LED2_ON(); /* 点亮LED2 */Delay(0xAFFFF);LED3_ON(); /* 点亮LED3 */Delay(0xAFFFF);LED4_ON(); /* 点亮LED4 */LED1_OFF(); /* 关闭LED1 */ Delay(0xAFFFF); LED2_OFF(); /* 关闭LED2 */Delay(0xAFFFF);LED3_OFF();/* 关闭LED3 */Delay(0xAFFFF);LED4_OFF();/* 关闭LED4 */ (5) 配置工程, 右单击选“Options for ”按钮a) 切换到Output。单击,选择Object文件夹且选中Create Hex File 。 图12 配置Output页b) 切换到Listing。单击,选择Listings文件夹。图13 配置Listing页c) 切换到C/C+Ø 添加两个预编译宏 STM32F10X_CL, USE_STDPERIPH_DRIVER (ST库用到的两个宏)Ø 修改Includes路径图14 配置C/C+页(1)(2)图15 配置路径d) 切换到Debug选择硬件调试器(缺省是软件仿真),选择Cortex-M/R J-LINK/J-Trace调试且选中 Run to main。图16 配置Debug 页e) 切换到UtilitiesØ 选择调试器类型,选择Cortex-M/R J-LINK/J-TraceØ 点击settings按钮,添加Flash编程算法,选择STM32连接型器件,Flash容量256K字节图17 配置Utilities页f) 配置完毕后,单击或执行编译,编译后若存在错误,需要修改,直至OK。提示: (即命令Build target ),功能为编译并链接后生成提供给下载运行的二进制代码。 (即命令ReBuild all target files ),功能为重新编译所有的源文件并链接后生成提供给下载运行的二进制代码。 g) 按照图18连接J-Link,连接无误后打开电源。h) 单击,下载代码,然后按实验平台上的Reset按钮观察实验现象。 十十十十PC的USB口实验平台的JTAG口图18 J-Link ARM JTAG仿真器连接图提示:实验过程中可以通过下表观察 J-Link ARM JTAG仿真器的现象四、 思考题1. 在教程中,有需要设置include选型,为什么要进行此项设置?如果不设置,程序能否编译通过?2. 能否自己动手,写一个不基于固件库的,直接操控寄存器的程序来实现LED流水灯。实验二、GPIO实验(1)一、 实验目的 1. 掌握MDK集成开发环境应用;2. 熟练掌握新建一个MDK工程与相关参数配置;3. 了解关于GPIO配置寄存器方法的应用;二、 实验设备硬件:PC机,嵌入式ARM开发实训平台,JLINK;软件:WindowsXP 操作系统,RealViewMDK (Keil Vision4) 集成开发环境,STM32固件库函数等。三、 部分实验电路图1 LED硬件连接四、 实验主要操作步骤(一)MDK配置1. 创建一个GPIO_1文件夹新建子文件夹User,存放源程序新建子文件夹RVMDK,存放启动代码新建子文件夹Project,存放自行创建的工程文件在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。(1)(2)图2 新建文件夹2. 新建Keil MDK工程启动Keil uVision4,点击菜单 New uVision Project,新建一个工程,命名为GPIO_1,可以存放在Project文件夹下面。图3 新建工程选择CPU类型为 STM32F107VC (这是MDV-STM32-107开发板采用的CPU类型)图4 选择CPU类型当提示是否复制启动代码时,请选择否。(为了工程目录标准化,稍后添加Keil软件自带的旧版本启动文件)根据自己的需要修改Target名字。(名字任意)为了便于代码管理,在这个Project下创建几个Group (名字可以任意) User : 存放用户的源代码 RVMDK : 存放启动文件(汇编语言文件)创建好Group后,依次添加文件。Ø 给User文件夹新建GPIO.c文件:图5 建立源代码文件(空文件)新文件内没有任何代码,保存新文件到User目录下,命名为GPIO.cØ 给User文件夹添加刚刚新建好的GPIO.c,该文件在GPIO_1User下,点击Add即可添加后可看到GPIO.c文件在User目录下图6 添加文件后Ø 给RVMDK文件夹添加启动文件,文件在keil_MDK软件安装目录下:KeilARMStartupST STM32F10x.s 文件,先把这个文件复制到GPIO_1工程目录下面的GPIO_1RVMDK 文件夹下,然后再把该文件添加到RVMDK 下,如下所示:图7 添加文件STM32F10x.s后添加时注意,应该把文件类型选择为所有,或者有*s的 扩展名的类型,否则看不到你所需要的文件(STM32F10x.s)。Ø 在main.c 文件中,输入源程序。GPIO即通用可编程输入输出,本实验采用的是通过直接配置寄存器进行GPIO编程,实现LED显示器的亮、暗控制。该 实验是最简单,也是一般最先开始的一个实验,它可以搭建一个最小的工程项目,之后可以扩展其他实验 , 从而节省了在搭建过程中所消耗的时间和精力。 但是需要提醒的是该方法没有脱离8051编程之模式。/*配置寄存器法 */#define GPIOD_CRL (*(unsigned int *)(0x) /0X40001 1400 #define GPIOD_CRH (*(unsigned int *)(0x) /基址+偏移量#define GPIOD_ODR (*(unsigned int *)(0xC) /32位数据寄存器#define RCC_APB2ENR (*(unsigned int *)(0x) /外设时钟使能寄存器void Delay(void) unsigned int i; for (i=0;i<0x9FFFF;i+); int main(void) / 开发板使用如下I/O口控制LED-PD3,PD4,PD7,PD13 RCC_APB2ENR |=(1<<5); / 使能PORTD口的时钟 GPIOD_CRL &= 0x; / 配置寄存器,将GPIOD_CRL低16位都清0,这样CNF为00, GPIOD_CRL |= 0x; / 配置寄存器,MODE选择为11,即50MHz输出模式 ,选择为推挽输出模式 GPIOD_CRH &= 0x; / 配置寄存器,将GPIOD_CRL高16位都清0,这样CNF为00, GPIOD_CRH |= 0x; / 配置寄存器,MODE选择为11,即50MHz输出模式 ,选择为推挽输出模式 while(1) GPIOD_ODR=0x2098; /LED对应位全亮Delay(); GPIOD_ODR=0x0000; /LED对应位全灭Delay(); 3. 配置工程, 点击“Options”按钮切换到Output选项卡。选择Object文件夹。图8 设置Output选项卡切换到Listing选项卡。选择List文件夹图9 设置Listing选项卡 切换到Debug选项卡Ø 选择硬件调试器(缺省是软件仿真),选择Cortex-M/R J-LINK/J-Trace调试器,在 Run to main前打钩图10 设置Debug选项卡切换到Utilities选项卡Ø 选额调试器类型,我们选择Cortex-M/R J-LINK/J-TraceØ 点击settings按钮,添加Flash编程算法,选择STM32连接型器件,Flash容量256K字节图11 设置Utilities选项卡4. 配置工程结束。编译工程文件,直至OK。(二)按照实验一方法连接JLINK。 按Reset键开始运行,观察实验效果。五、 思考题1. 简述GPIO端口位的基本结构2. 简述怎么配置GPIO寄存器3. 简述GPIO的几种模式配置及其区别4. 在实例代码工程中修改代码使得四个LED灯依次轮流点亮,间断时间不限实验二、GPIO实验(2)一、 实验目的 1. 学习和分析固件库在GPIO模块上的应用2. 熟练掌握 GPIO的应用 二、 实验设备硬件:PC机,嵌入式ARM开发实训平台;软件:WindowsXP 操作系统,RealViewMDK (Keil Vision4) 集成开发环境,STM32固件库函数等。三、 部分实验电路图1 LED硬件连接四、 实验主要操作步骤1. 创建一个GPIO_2 文件夹,且在GPIO_2文件夹下 建立子文件夹User,用于存放源程序 建立子文件夹Project, 存放KEIL工程文件 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。2. 复制源代码到GPIO_2 文件夹 将Libraries文件夹和Utilities文件夹整体复制到GPIO_2文件夹下。提示:Libraries和Utilities文件夹所包含的文件可以在ST官网下载解压后得到。图2 文件夹复制将第一个实验User文件夹下面的文件复制到本实验的GPIO_2User文件夹下图3 文件复制3. 新建Keil MDK工程 启动Keil uVision4,点击命令 New uVision Project,新建一个工程,命名为GPIO; 选择CPU类型为 STM32F107VC (这是MDV-STM32-107开发板采用的CPU类型); 当提示是否复制启动代码时,请选择否。(用标准库中的启动代码) 根据自己的需要修改Target名字。(如图中的GPIO) 右单击GPIO,按照下图创建几个Group且进行更名 。图4 文件结构其中 :User : 存放源代码; StdPeriph_Driver : 存放ST标准库外设驱动文件; CMSIS : 存放CMSIS接口文件(库的一部分); STM32_EVAL存放实验设备的相关驱动文件; RVMDK : 存放启动文件(汇编语言); 依次添加文件。Ø 在User文件夹中添加文件图5 User下添加文件Ø 在RVMDK文件夹中添加文件 启动文件路径:GPIO_2LibrariesCMSISCoreCM3startuparm图5 RVMDK下添加文件Ø 在stdPeriph_Driver文件夹下添加文件图6 stdPeriph_Driver文件夹下添加文件设备驱动文件路径:GPIO_2LibrariesSTM32F10x_StdPeriph_DriversrcØ 在CMSIS文件夹下添加文件图6 CMSIS下添加文件CMSIS接口文件路径:GPIO_2LibrariesCMSISCoreCM3Ø 在STM32_EVAL文件夹下添加文件图7 STM32_EVAL下添加文件STM32_EVAL接口文件路径GPIO_2GPIOUtilitiesSTM32_EVAL4. 建立源代码(main.c 函数)。GPIO即通用可编程输入输出,本实验采用的是运用固件库方法进行GPIO编程,实现LED显示器的亮、暗控制。#include "stm32f10x.h"#include "stm32_eval.h"/* Private function prototypes -*/void RCC_Configuration(void);void Delay(_IO uint32_t nCount);int main(void) RCC_Configuration(); /系统时钟配置函数 STM_EVAL_LEDInit(LED1); / 初始化LEDx STM_EVAL_LEDInit(LED2); STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED4); while (1) STM_EVAL_LEDOn(LED1);/点亮LED1 Delay(0x3FFFFF); STM_EVAL_LEDOn(LED2); STM_EVAL_LEDOff(LED1); /熄灭LED1 Delay(0x3FFFFF); STM_EVAL_LEDOn(LED3); STM_EVAL_LEDOff(LED2); Delay(0x3FFFFF); STM_EVAL_LEDOn(LED4); STM_EVAL_LEDOff(LED3); Delay(0x3FFFFF);STM_EVAL_LEDOff(LED4); /*时钟配置*/void RCC_Configuration(void) /* Setup the microcontroller system. Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variable. */ SystemInit();void Delay(_IO uint32_t nCount) for(; nCount != 0; nCount-); 5. 配置工程, 右单击“Options for-”按钮 切换到Output选项卡。单击选择Object文件夹;且选中Create Hex File。图8 设置Output选项卡切换到Listing选项卡。单击,选择List文件夹切换到C/C+选项卡Ø 添加预编译宏USE_STDPERIPH_DRIVER, STM32F10X_CL, USE_STM3210C_EVAL,LCD_Debug (ST库用到了这两个宏)。(1)Ø 配置Includes路径(2)(3)图9 设置C/C+选项卡切换到Debug选项卡Ø 选择Cortex-M/R J-LINK/J-Trace调试器,选中 Run to main 图10 设置Debug选项卡 切换到UtilitiesØ 选择调试器类型Cortex-M/R J-LINK/J-Trace;Ø 点击settings按钮,添加Flash编程算法,选择STM32连接型器件,Flash容量256K字节。6. 配置工程完毕,进行编译,有错则进行修改,直至OK。7. 连接硬件(主要是Jlink设备),按开发板Reset键开始执行程序。五、 思考题1. 简述GPIO端口位的基本结构2. 简述配置GPIO寄存器方法3. 简述GPIO的几种模式配置及其区别4. 运用图11的快捷菜单命令阅读分析程序功能。图11 设置Debug选项卡提示:执行上述菜单命令一定要选中参数图12中参数。图12 参数Browse Information补充实验:通过使用固件库配置GPIO引脚的模式控制法 /* Includes -*/#include "stm32f10x.h"/#include "stm32_eval.h"/* Private typedef -*/* Private define -*/* Private macro -*/* Private variables -*/GPIO_InitTypeDef GPIO_InitStructure; /定义GPIO初始化结构体/* Private function prototypes -*/void RCC_Configuration(void);void Delay(_IO uint32_t nCount);int main(void) /* System Clocks Configuration */RCC_Configuration(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); /外设时钟配置,开启GPIOB和GPIOD的时钟 /GPIO_InitTypeDef GPIO_InitStructure; /定义GPIO初始化结构体GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_7|GPIO_Pin_13; /管脚位置定义,标号可以是NONE、ALL、0至15。GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz; /输出速度2MHzGPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /推挽输出模式 Out_PPGPIO_Init(GPIOD,&GPIO_InitStructure); /E组GPIO初始化 /RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,DISABLE); /外设时钟配置,开启GPIOB和GPIOD的时钟 while (1) /*=LED1-OFF =*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_SetBits(GPIOD , GPIO_Pin_13);GPIO_SetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED34-ON=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_ResetBits(GPIOD, GPIO_Pin_13);GPIO_SetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED123-OFF=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_ResetBits(GPIOD , GPIO_Pin_13);GPIO_ResetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED1234-ON=*/GPIO_ResetBits(GPIOD , GPIO_Pin_7);GPIO_ResetBits(GPIOD , GPIO_Pin_13);GPIO_ResetBits(GPIOD , GPIO_Pin_3);GPIO_ResetBits(GPIOD, GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff);/*=LED1234-ON=*/GPIO_SetBits(GPIOD , GPIO_Pin_7);GPIO_SetBits(GPIOD , GPIO_Pin_13);GPIO_SetBits(GPIOD , GPIO_Pin_3);GPIO_SetBits(GPIOD , GPIO_Pin_4);Delay(0xfffff);Delay(0xfffff);Delay(0x5ffff); /* * brief Configures the different system clocks. * param None * retval None */void RCC_Configuration(void) /* Setup the microcontroller system. Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variable. */ SystemInit();/* * brief Inserts a delay time. * param nCount: specifies the delay time length. * retval None */void Delay(_IO uint32_t nCount) for(; nCount != 0; nCount-);实验三、DMA实验一、 实验目的 1. 掌握直接存储器访问(DMA)的特性及功能;2. 学习且掌握STM32 DMA的应用。二、 实验设备硬件:PC机,嵌入式ARM开发实训平台,JLINK;软件:WindowsXP 操作系统,RealViewMDK (Keil Vision4) 集成开发环境,STM32固件库函数等。三、 实验原理和实验操作步骤直接存储器访问(DMA)用于提供存储器和外设之间以及存储器和存储器之间的高速数据传输。数据传输不需要CPU的参与,使得CPU能够用于其它的运行。DMA控制器有7个通道,每个专门用于管理来自于1个或者多个外设的存储器访问请求。它有一个仲裁器用于处理DMA请求间的优先级。程序用于演示通过DMA将数据从FLASH中传输到片内RAM中。DMA1的通道6用来将FLASH中的32个32位的数据传输到RAM中。DMA的启动是由软件触发的。DMA1的通道6设置成memory-to-memory的传输方式。源和目的的地址都会随着传输而自动递增。通过使能DMA1的通道16来启动整个传输过程。在传输结束后DMA会产生一个中断。中断发生时,剩余需要传输的数据的个数应该就等于零了。最后,通过Buffercmp函数来比较两个位置的数据,比较结果显示在LCD屏幕上。(一)MDK配置1. 创建一个DMA文件夹以及相关的子文件夹2. 新建Keil MDK工程文件按照前面实验主要操作步骤,此操作包括建立Group、更名;添加文件等操作。图1 添加文件的Project框3. main.c 源程序。 #include "stm32f10x.h"#include "stm3210c_eval_lcd.h"#include "stm32_eval.h"#include <stdio.h>/* Private typedef -*/typedef enum FAILED = 0, PASSED = !FAILED TestStatus;/* Private define -

    注意事项

    本文(arm实验指导书.docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开