ARM Cortex-M3系统设计与实现——STM32基础篇.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ARM Cortex-M3系统设计与实现——STM32基础篇.ppt》由会员分享,可在线阅读,更多相关《ARM Cortex-M3系统设计与实现——STM32基础篇.ppt(211页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ARMCortex-M3系统设计与实现STM32基础篇目目 录录第1章 STM32 MCU简介第2章 通用并行接口GPIO第3章 通用同步/异步收发器接口USART第4章 串行设备接口SPI第5章 定时器TIM第6章 模数转换器ADC第7章 内部集成电路总线接口I2C第8章 嵌套向量中断控制器NVIC第9章 直接存储器存取DMA第10章 实时钟系统设计ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.2 STM32 MCU存储器映像程序存储器、数据存储器和输入输出端口寄存器被组
2、织在同一个4GB的线性地址空间内前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_地址范围设备名称0 xE000 0000-0 xE00F FFFF(1MB)内核设备(SysTick和NVIC等)0 x4000 0000-0 x5FFF FFFF(512MB)片上设备(GPIO、USART、TIM和ADC等)0 x2000 0000-0 x3FFF FFFF(512MB)SRAM0 x0000 0000-0 x1FFF FFFF(512MB)FLASH第1章 STM32 MCU简介1.3 STM32
3、MCU系统时钟树系统时钟树由系统时钟源、系统时钟和设备时钟等部分组成系统时钟源有4个:高速外部时钟HSE、低速外部时钟LSE、高速内部时钟HSI和 低速内部时钟LSI外部时钟用OSC实现,内部时钟用RC实现 前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.3 STM32 MCU系统时钟树系统时钟SYSCLK可以是HSE或HSI,也可以是HSE或HSI通过锁相环倍频后的锁相环时钟PLLCLKSYSCLK经AHB预分频器分频后得到AHB总线时钟HCLK,HCLK经APB
4、1/APB2预分频器分频后得到APB1/APB2总线时钟PCLK1和PCLK2前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.3 STM32 MCU系统时钟树系统时钟树中的时钟选择、预分频值和外设时钟使能等都可以通过对复位和时钟控制(RCC)寄存器编程实现前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_偏移地址名称类型复位值说 明0 x14RCC_AHBENR读/写0 x
5、0000 0014AHB设备时钟使能寄存器0 x18RCC_APB2ENR读/写0 x0000 0000APB2设备时钟使能寄存器0 x1CRCC_APB1ENR读/写0 x0000 0000APB1设备时钟使能寄存器第1章 STM32 MCU简介1.3 STM32 MCU系统时钟树Keil的电源,复位和时钟控制对话框 前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.3 STM32 MCU系统时钟树APB2设备时钟使能寄存器(RCC_APB2ENR)前页 返回ARM
6、 Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_位名称类型复位值说 明0AFIOEN读/写0AFIO时钟使能:0-关闭时钟,1-开启时钟2GPIOAEN读/写0GPIOA时钟使能:0-关闭时钟,1-开启时钟3GPIOBEN读/写0GPIOB时钟使能:0-关闭时钟,1-开启时钟9ADC1EN读/写0ADC1时钟使能:0-关闭时钟,1-开启时钟11 TIM1EN读/写0TIM1时钟使能:0-关闭时钟,1-开启时钟12 SPI1EN读/写0SPI1时钟使能:0-关闭时钟,1-开启时钟14 USART1EN 读/写0USA
7、RT1时钟使能:0-关闭时钟,1-开启时钟第1章 STM32 MCU简介1.3 STM32 MCU系统时钟树Keil的APB桥对话框 前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.4 Cortex-M3简介Cortex-M3是采用哈佛结构的32位处理器内核,拥有独立的指令总线和数据总线,两者共享同一个4GB存储空间Cortex-M3内建一个嵌套向量中断控制器(NVIC:Nested Vectored Interrupt Controller),支持可嵌套中断、向量
8、中断和动态优先级等Cortex-M3内部还包含一个系统滴答定时器SysTick前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.4 Cortex-M3简介SysTick的核心是1个24位递减计数器,使用时根据需要设置初值,启动后在系统时钟的作用下递减,减到0时置计数标志位并重装初值系统可以查询计数标志位,也可以在中断允许时产生SysTick中断前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书
9、军 cortex_第1章 STM32 MCU简介1.4 Cortex-M3简介SysTick通过4个32位寄存器进行操作前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_地址名称类型复位值说 明0 xE000 E010 CTRL读/写0控制状态寄存器0 xE000 E014 LOAD读/写-重装值寄存器(24位),计数到0时重装到VAL0 xE000 E018 VAL读/写清除-当前值寄存器(24位),写清除,同时清除计数标志0 xE000 E01C CALIB读-校准寄存器第1章 STM32 MCU
10、简介1.4 Cortex-M3简介控制状态寄存器有3个控制位和1个状态位前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_位名称类型复位值说 明0ENABLE读/写0定时器允许:0-停止定时器,1-启动定时器1TICKINT读/写0中断允许:0-计数到0时不中断,1-计数到0时中断2CLKSOURCE读/写0时钟源选择:0-时钟源为HCLK/8,1-时钟源为HCLK16 COUNTFLAG读0计数标志:SysTick计数到0时置1,读取后自动清零第1章 STM32 MCU简介1.4 Cortex-M3
11、简介Keil的SysTick对话框前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.4 Cortex-M3简介SysTick等片内设备和接口的编程操作方法有2种:直接操作寄存器和使用库函数 使用库函数和使用自定义结构操作寄存器本质相同和使用库函数相比,使用直接操作寄存器进行软件设计有下列优点:(1)源程序简单,目标程序小。(2)直接操作寄存器有利于对硬件的理解,比较适合电子、通信和自动化等相关专业的学生学习使用直接操作寄存器的主要缺点是移植性较差,而使用库函数移植性较
12、好,比较适合计算机等相关专业的学生学习使用前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第1章 STM32 MCU简介1.4 Cortex-M3简介嵌入式系统的C语言程序设计与一般的C语言程序设计 基本相同,主要差别有2点:(1)嵌入式系统C语言程序设计主要使用寄存器操作,而寄存器操作和变量操作实质相同,寄存器的名称实质就是变量名称(2)寄存器操作中控制和状态寄存器的操作通常是位操作包括“位与&”、“位或|”和“位异或”(注意“位与&”和“位或|”与“逻辑与&”和“逻辑或|”的区别)使用位操作的主
13、要目的是只对控制和状态寄存器的指定位进行操作,对其他位的值不产生影响 前页 返回ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.1 GPIO结构及寄存器说明2.2 GPIO设计实例2.2.1 直接操作寄存器软件设计2.2.2 使用库函数范例程序(V2.0.1)2.2.3 用GPIO控制LCDARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.1
14、GPIO结构及寄存器说明GPIO包括多个16位I/O端口,每个端口可以独立设置3种输入方式和4种输出方式,并可独立地置位或复位GPIO由寄存器、输入驱动器和输出驱动器等部分组成ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.1 GPIO结构及寄存器说明GPIO通过7个32位寄存器进行操作ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_偏移地址名称类型复位值说 明0 x00CRL读/写
15、0 x44444444 配置寄存器低位(每个端口4位)0 x04CRH读/写0 x44444444 配置寄存器高位(每个端口4位)0 x08IDR读0 x000016位输入数据寄存器0 x0CODR读/写0 x000016位输出数据寄存器0 x10BSRR写0 x00000000 位置位/复位寄存器0 x14BRR写0 x0000位复位寄存器0 x18LCKR读/写0 x00000配置锁定寄存器第2章 通用并行接口GPIO前页 返回2.1 GPIO结构及寄存器说明每个端口的4个配置位是CNF1:0和MODE1:0ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现S
16、TM32STM32基础篇基础篇郭书军 cortex_CNF1:0MODE1:0输入配置CNF1:0MODE1:0(2)输出配置0000模拟输入0001/10/11通用推挽输出0100浮空输入(复位状态)0101/10/11通用开漏输出1000上拉/下拉输入(1)1001/10/11复用推挽输出1100保留1101/10/11复用开漏输出注:(1)ODR=1:上拉,ODR=0:下拉 (2)01/10/11依次对应最大输出频率为10MHz/2MHz/50MHz第2章 通用并行接口GPIO前页 返回2.1 GPIO结构及寄存器说明Keil的GPIOA对话框ARM Cortex-M3ARM Corte
17、x-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2 GPIO设计实例系统包括Cortex-M3 CPU(内嵌SysTick定时器)、存储器、2个按键接口和4个LED接口,实现用2个按键控制4个LED的流水显示方向,4个LED流水显示,每1s移位1次ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计ARM Cortex-M3ARM Cortex-M3系统设计与
18、实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计头文件(main.h)ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计源文件(main.c)(主程序)ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存
19、器软件设计源文件(main.c)(定时器子程序)ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计源文件(main.c)(按键子程序)ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计源文件(main.c)(LED子程序)ARM Cortex-M3ARM Cortex-M3系统设计与实现
20、系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计源文件(main.c)(LED子程序)(续)ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计 1、Keil的安装运行Keil安装程序MDK412.exe,将Keil安装到默认文件夹C:Keil。安装完成后,下列文件夹包含与STM32F10 x系列MCU相关的范例程序、头文件和库文件(V2.0.1):C
21、:KeilARMExamplesSTSTM32F10 xFWLibExamplesC:KeilARMINCSTSTM32F10 x:stm32f10 x_*.hC:KeilARMRV31LIBSTSTM32F10 x:stm32f10 x_*.cARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计 1、Keil的安装 2、新建工程 3、新建、添加C语言源文件 4、生成目标程序文件 5、使用仿真器调试和运行目标程序文件 6、使用调试器调试和运行
22、目标程序文件ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计 5、使用仿真器调试和运行目标程序文件使用仿真器调试和运行目标程序文件通过仿真硬件实现,不需要目标硬件使用仿真器调试和运行目标程序还具有分析(Analysis)功能,包括逻辑分析仪(Logic Analyzer)、性能分析仪(Performance Analyzer)和代码覆盖率(Code Coverage)逻辑分析仪(Logic Analyzer)是非常有用的调试功能ARM C
23、ortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计 5、使用仿真器调试和运行目标程序文件ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.1 直接操作寄存器软件设计 6、使用调试器调试和运行目标程序文件使用调试器调试和运行目标程序文件需要调试器和目标硬件,并且需要安装调试器驱动程序和调试器插件程序,并对调试器进行设置 (1
24、)安装调试器驱动程序Colink调试器驱动安装程序CDM20828_Setup.exeColinkEx调试器驱动安装程序ColinkExUsbDriver-1.2.1.exe (2)安装调试器插件程序调试器插件安装程序CoMDKPlugin-1.3.1.exe (3)调试器设置使用调试器的步骤和使用仿真器基本相同ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.2 使用库函数范例程序(V2.0.1)在C:KeilARMExamplesSTSTM32F10 xFWLi
25、bExamples SysTick目录包含有使用库函数的SysTick和GPIO范例程序其中包含下列7个文件:main.c:主程序文件 main.h:主程序头文件 stm32f10 x_it.c:中断服务程序文件 stm32f10 x_it.h:中断服务程序头文件 platform_config.h:开发板配置文件 stm32f10 x_conf.h:库配置文件 readme.txt:范例说明文件ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇郭书军 cortex_第2章 通用并行接口GPIO前页 返回2.2.2 使用库函数范例程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM Cortex-M3系统设计与实现STM32基础篇 Cortex M3 系统 设计 实现 STM32 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内