ARM Cortex-M3系统设计与实现——STM32基础篇_第1页
ARM Cortex-M3系统设计与实现——STM32基础篇_第2页
ARM Cortex-M3系统设计与实现——STM32基础篇_第3页
ARM Cortex-M3系统设计与实现——STM32基础篇_第4页
ARM Cortex-M3系统设计与实现——STM32基础篇_第5页
已阅读5页,还剩205页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM Cortex-M3 系统设计与实现 STM32基础篇 郭书军 cortex_ 目目 录录 第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.1 STM32 MCU结构 1.2 STM32 M

2、CU存储器映像 1.3 STM32 MCU系统时钟树 1.4 Cortex-M3简介 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 第1章 STM32 MCU简介 1.1 STM32 MCU结构 由控制单元、从属单元 和总线矩阵三大部分组 成,控制单元和从属单 元通过总线矩阵相连接 控制单元包括 Cortex- M3内核和两个DMA控 制器(DMA1和DMA2) 从属单元包括存储器 (Flash和SRAM等)和 设备(连接片外设备的 接口和片内设备) 前页 返

3、回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.1 STM32 MCU结构 连接片外设备的接口有 并行接口和串行接口, 并行接口即通用IO接口 GPIO,串行接口有 USART、SPI、I2C、 USB和CAN等 片内设备有定时器TIM、 模数转换器ADC和数模 转换器DAC等 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.2

4、STM32 MCU存储器映像 程序存储器、数据存储器和输入输出端口寄存器被组织 在同一个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)SRAM 0 x00

5、00 0000 - 0 x1FFF FFFF (512MB)FLASH 第1章 STM32 MCU简介 1.3 STM32 MCU系统时钟树 系统时钟树由系统时钟源、 系统时钟和设备时钟等部 分组成 系统时钟源有4个: 高速外部时钟HSE、 低速外部时钟LSE、 高速内部时钟HSI和 低速内部时钟LSI 外部时钟用OSC实现, 内部时钟用RC实现 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.3 STM32 MCU系统时钟树 系统时钟SYSCLK可以是 H

6、SE或HSI,也可以是 HSE或HSI通过锁相环倍 频后的锁相环时钟 PLLCLK SYSCLK经AHB预分频器 分频后得到AHB总线时钟 HCLK,HCLK经 APB1/APB2预分频器分频 后得到APB1/APB2总线时 钟PCLK1和PCLK2 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.3 STM32 MCU系统时钟树 系统时钟树中的时钟选择、预分频值和外设时钟使能等 都可以通过对复位和时钟控制(RCC)寄存器编程实现 前页 返回 ARM Cor

7、tex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 偏移 地址 名称类型复位值说 明 0 x14RCC_AHBENR读/写0 x0000 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系统

8、设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.3 STM32 MCU系统时钟树 APB2设备时钟使能寄存器(RCC_APB2ENR) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型复位值说 明 0AFIOEN读/写0AFIO时钟使能:0-关闭时钟,1-开启时钟 2GPIOAEN读/写0GPIOA时钟使能:0-关闭时钟,1-开启时钟 3GPIOBEN读/写0GPIOB时钟使能:0-关闭时钟,1-开启时钟 9ADC

9、1EN读/写0ADC1时钟使能:0-关闭时钟,1-开启时钟 11 TIM1EN读/写0TIM1时钟使能:0-关闭时钟,1-开启时钟 12 SPI1EN读/写0SPI1时钟使能:0-关闭时钟,1-开启时钟 14 USART1EN 读/写0USART1时钟使能: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简介 Co

10、rtex-M3是采用哈佛结构的32位处理器内核,拥有独立 的指令总线和数据总线,两者共享同一个4GB存储空间 Cortex-M3内建一个嵌套向量中断控制器(NVIC:Nested Vectored Interrupt Controller),支持可嵌套中断、向量中 断和动态优先级等 Cortex-M3内部还包含一个系统滴答定时器SysTick 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.4 Cortex-M3简介 SysTick的核心是1个24 位递减计

11、数器,使用时 根据需要设置初值,启 动后在系统时钟的作用 下递减,减到0时置计数 标志位并重装初值 系统可以查询计数标志 位,也可以在中断允许 时产生SysTick中断 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.4 Cortex-M3简介 SysTick通过4个32位寄存器进行操作 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 地址名称类型复位值说

12、明 0 xE000 E010 CTRL读/写0控制状态寄存器 0 xE000 E014 LOAD读/写-重装值寄存器(24位),计数到0时 重装到VAL 0 xE000 E018 VAL读/写 清除 -当前值寄存器(24位),写清除,同 时清除计数标志 0 xE000 E01C CALIB读-校准寄存器 第1章 STM32 MCU简介 1.4 Cortex-M3简介 控制状态寄存器有3个控制位和1个状态位 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型复位值说 明 0ENABLE读

13、/写0定时器允许:0-停止定时器,1-启动定 时器 1TICKINT读/写0中断允许:0-计数到0时不中断,1-计 数到0时中断 2CLKSOURCE读/写0时钟源选择:0-时钟源为HCLK/8,1- 时钟源为HCLK 16 COUNTFLAG读0计数标志:SysTick计数到0时置1,读 取后自动清零 第1章 STM32 MCU简介 1.4 Cortex-M3简介 Keil的SysTick对话框 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章 STM32 MCU简介 1.4 Cort

14、ex-M3简介 SysTick等片内设备和接口的编程操作方法有2种: 直接操作寄存器和使用库函数 使用库函数和使用自定义结构操作寄存器本质相同 和使用库函数相比,使用直接操作寄存器进行软件设计 有下列优点: (1) 源程序简单,目标程序小。 (2) 直接操作寄存器有利于对硬件的理解,比较适合电子、 通信和自动化等相关专业的学生学习使用 直接操作寄存器的主要缺点是移植性较差,而使用库函 数移植性较好,比较适合计算机等相关专业的学生学习 使用 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第1章

15、 STM32 MCU简介 1.4 Cortex-M3简介 嵌入式系统的C语言程序设计与一般的C语言程序设计 基本相同,主要差别有2点: (1) 嵌入式系统C语言程序设计主要使用寄存器操作, 而寄存器操作和变量操作实质相同,寄存器的名称实质 就是变量名称 (2) 寄存器操作中控制和状态寄存器的操作通常是位操作 包括“位与&”、“位或|”和“位异或” (注意“位与&”和“位或|”与“逻辑与&”和“逻辑或|” 的区别)使用位操作的主要目的是只对控制和状态寄存器 的指定位进行操作,对其他位的值不产生影响 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM

16、32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.1 GPIO结构及寄存器说明 2.2 GPIO设计实例 2.2.1 直接操作寄存器软件设计 2.2.2 使用库函数范例程序(V2.0.1) 2.2.3 用GPIO控制LCD ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.1 GPIO结构及寄存器说明 GPIO包括多个16位I/O端 口,每个端口可以独立设 置3种输入方式和4种输出 方式,并可独立地置位或 复位 G

17、PIO由寄存器、输入驱 动器和输出驱动器等部分 组成 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.1 GPIO结构及寄存器说明 GPIO通过7个32位寄存器进行操作 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 偏移地址名称类型复位值说 明 0 x00CRL读/写0 x44444444 配置寄存器低位(每个端口4位) 0 x04CRH读/写0 x44444444 配

18、置寄存器高位(每个端口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:0 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ CNF 1:0 MODE

19、1:0 输入配置CNF 1:0 MODE 1: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 Cortex-M3系统设计与实现系统设计与实现

20、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系统设计与实现系统设

21、计与实现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

22、.2.1 直接操作寄存器软件设计 源文件(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 Cort

23、ex-M3ARM Cortex-M3系统设计与实现系统设计与实现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。安装完成后,下列文件夹包含与STM

24、32F10 x系列 MCU相关的范例程序、头文件和库文件(V2.0.1): C:KeilARMExamplesSTSTM32F10 xFWLibExamples C:KeilARMINCSTSTM32F10 x:stm32f10 x_*.h C:KeilARMRV31LIBSTSTM32F10 x:stm32f10 x_*.c ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.1 直接操作寄存器软件设计 1、Keil的安装 2、新建工程 3、新建、添加C语言

25、源文件 4、生成目标程序文件 5、使用仿真器调试和运行目标程序文件 6、使用调试器调试和运行目标程序文件 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.1 直接操作寄存器软件设计 5、使用仿真器调试和运行目标程序文件 使用仿真器调试和运行目标程序文件通过仿真硬件实现, 不需要目标硬件 使用仿真器调试和运行目标程序还具有分析(Analysis)功 能,包括逻辑分析仪(Logic Analyzer)、性能分析仪 (Performance Analyzer)和

26、代码覆盖率(Code Coverage) 逻辑分析仪(Logic Analyzer)是非常有用的调试功能 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.1 直接操作寄存器软件设计 5、使用仿真器调试和运行目标程序文件 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.1 直接操作寄存器软件设计 6、使用调试器调试和运行

27、目标程序文件 使用调试器调试和运行目标程序文件需要调试器和目标硬 件,并且需要安装调试器驱动程序和调试器插件程序,并 对调试器进行设置 (1) 安装调试器驱动程序 Colink调试器驱动安装程序CDM20828_Setup.exe ColinkEx调试器驱动安装程序ColinkExUsbDriver-1.2.1.exe (2) 安装调试器插件程序 调试器插件安装程序CoMDKPlugin-1.3.1.exe (3) 调试器设置 使用调试器的步骤和使用仿真器基本相同 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cort

28、ex_ 第2章 通用并行接口GPIO 前页 返回 2.2.2 使用库函数范例程序(V2.0.1) 在C:KeilARMExamplesSTSTM32F10 xFWLibExamples 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-M3A

29、RM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.2 使用库函数范例程序(V2.0.1) ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 1、LCM046简介 LCM046是4位多功能通用型 8段(8.8.8.8)液晶显示模块 内置显示RAM,可以显示任 意字段笔划,3-4线串行接口 ARM Cortex-M3ARM Co

30、rtex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 引脚功能方向说 明引脚功能方向说 明 1/CS输入 片选(内部上拉)6VLCD输入对比度调整 2/RD输入 读(内部上拉)7VDD输入电源(2.7-5.5V) 3/WR输入 写(内部上拉)8IRQ输出定时器中断 4DA双向 数据(内部上拉)9BZ输出蜂鸣器正极 5GND-地10/BZ输出蜂鸣器负极 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 1、LCM046简介 LCM046写操作时序 写命令格式为:100命令代码(C7-C0:8位)0,共12位 写数据格式为:1

31、01地址(A5-A0:6位)数据(D0-D3:4位), 共13位 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 1、LCM046简介 LCM046常用命令代码 初始化模块的步骤是: (1) 初始化模块命令 (2) 定义内部RC振荡器工作 (3) 开振荡器 (4) 开显示器 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 命令代码功 能命令代

32、码功 能 0000 0000关振荡器0001 0100定义外部晶体振荡器工作 0000 0001开振荡器0001 1000定义内部RC振荡器工作 0000 0010关显示器0010 1001初始化模块 0000 0011开显示器 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 1、LCM046简介 LCM046地址数据 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 地 址 A5-A0 数 据地 址 A5-A0 数 据 D3D2D1D0D3D2D1D0 000000COL1E1

33、F1A0000011D1C1G1B 000010DP12E2F2A0000112D2C2G2B 000100DP23E3F3A0001013D3C3G3B 000110DP34E4F4A0001114D4C4G4B 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 2、GPIO控制LCM046程序设计(写子程序) ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 2、GPIO控制LCM046程序设计(写命令

34、/数据子程序) ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 2、GPIO控制LCM046程序设计(初始化子程序) ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 2、GPIO控制LCM046程序设计(显示处理子程序) ARM Cortex-M3ARM Cortex

35、-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第2章 通用并行接口GPIO 前页 返回 2.2.3 用GPIO控制LCD 2、GPIO控制LCM046程序设计(信号波形) ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.1 UART简介 3.2 USART结构及寄存器说明 3.3 USART设计实例 3.3.1 USART基本功能程序设计 3.3.2 与计算机通信程序设计 3.3.3 用printf()实现通信程

36、序设计 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.1 UART简介 并行/串行:同步/异步:UART Universal Asynchronous Receiver/Transmitter UART TxD RxD GND SPI MISO MOSI SCLK NSS GND I2C SDA SCL GND USB 5V D+ D- GND 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM3

37、2STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.1 UART简介 UART的相关标准规定了接口的机械特性、电气特性和 功能特性等,UART的电气特性标准包括RS-232C、 RS422、RS423和RS485等,其中RS-232C是最常用的串 行通信标准 RS-232C的全称是“数据终端设备(DTE)和数据通信 设备(DCE)之间串行二进制数据交换接口技术标准”, 其中DTE包括微机、微控制器和打印机等,DCE包括调 制解调器MODEM、GSM模块和WiFi模块等 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系

38、统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.1 UART简介 RS-232C机械特性规定RS-232C使用25针D型连接器, 后来简化为9针D型连接器 RS-232C电气特性采用负逻辑:逻辑“1”的电平低于 -3V,逻辑“0”的电平高于+3V,这和TTL的正逻辑 (逻辑“1”为高电平,逻辑“0”为低电平)不同,因 此通过RS-232C和TTL器件通信时必须进行电平转换 目前微控制器的UART接口采用的是TTL正逻辑,和 TTL器件连接不需要电平转换。和采用负逻辑的计算 机相连时需要进行电平转换,或使用UART-USB转换

39、 器连接 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.1 UART简介 RS-232C功能特性规定各引脚的功能 其中最常用的引脚只有3个: RXD(接收数据)、TXD(发送数据)和GND(地) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 引 脚 名称功能 DTE 方向 DCE 方向 引 脚 名称功能 DTE 方向 DCE 方向 1DCD载

40、波检测输入输出6 DSR 数据设备准备好 输入 输出 2RXD接收数据输入输出7RTS请求发送输出 输入 3TXD发送数据输出输入8CTS清除发送输入 输出 4DTR 数据终端准备好 输出输入9RI振铃指示输入 输出 5GND 地 第3章 通用同步/异步收发器接口USART 3.1 UART简介 RS-232C连接 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ DTE 2-RXD 3-TXD 4-DTR 6-DSR 7-RTS 8-CTS 1-DCD 9-RI 5-GND DCE 2-RXD

41、 3-TXD 4-DTR 6-DSR 7-RTS 8-CTS 1-DCD 9-RI 5-GND DTE 2-RXD 3-TXD 4-DTR 6-DSR 7-RTS 8-CTS 1-DCD 9-RI 5-GND DTE 2-RXD 3-TXD 4-DTR 6-DSR 7-RTS 8-CTS 1-DCD 9-RI 5-GND 第3章 通用同步/异步收发器接口USART 3.1 UART简介 RS-232C指标:数据速率和数据格式 数据速率用波特率表示:1200 2400 4800 9600 19200 数据格式包括1个起始位、5-8个数据位、0-1个校验位 和1-2个停止位 通信双方的数据速率和数

42、据格式必须一致,否则无法 实现通信 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 USART由收发数据和 收发控制两部分组成 收发数据使用双重数据 缓冲:收发数据寄存器 和收发移位寄存器 收发控制包括控制状态 寄存器、发送器控制、 接收器控制、中断控制 和波特率控制等 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex

43、_ 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 USART使用的GPIO引脚 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ USART 引脚 GPIO引脚 USART1USART2USART3配置 TXPA.09(PB.06)(1)PA.02PB.10(PC.10)(1)复用推挽输出 RXPA.10(PB.07)(1)PA.03PB.11(PC.11)(1)浮空输入 CTSPA.11PA.00PB.13浮空输入 RTSPA.12PA.01PB.14复用推挽

44、输出 SCLKPA.08PA.04PB.12(PC.12)(1)复用推挽输出注:(1) 括号中的引脚为复用功能重映射引脚 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 USART通过7个寄存器进行操作 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 偏移 地址 名称类型复位值说 明 0 x00SR读/写0清除 0 x00C0 状态寄存器(TXE=1,TC=1) 0 x04DR读/写-数据寄存器(读对应RDR,写对应TDR) 0 x08BRR读/写0 x0000

45、波特率寄存器(分频值=fPCLK/波特率) 0 x0CCR1读/写0 x0000控制寄存器1 0 x10CR2读/写0 x0000控制寄存器2 0 x14CR3读/写0 x0000控制寄存器3 0 x18GTPR读/写0 x0000保护时间和预定标寄存器(智能卡使用) 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 USART状态寄存器(SR) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型复位值说 明 7TXE读1发送数据寄存器空(写DR清除) 6

46、TC读/写0清除1发送完成 5RXNE读/写0清除0接收数据寄存器不空(读DR清除) 4IDLE读0线路空闲 3ORE读0过载错误 2NE读0噪声错误 1FE读0帧错误 0PE读0校验错误 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 USART控制寄存器1(CR1) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型复位值说 明 13UE读/写0UART使能 12M读/写0字长:0-8位,1-9位 10PCE读/写0校验控制使能:0-禁止,1-允许

47、9PS读/写0校验选择:0-偶校验,1-奇校验 7TXEIE读/写0TXE中断使能:0-禁止,1-允许 6TCIE读/写0TC中断使能:0-禁止,1-允许 5RXNEIE读/写0RXNE中断使能:0-禁止,1-允许 3TE读/写0发送使能:0-禁止,1-允许 2RE读/写0接收使能:0-禁止,1-允许 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 USART控制寄存器2(CR2) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型复位值说 明 13:1

48、2STOP1:0读/写00停止位数:00-1位,10-2位 11CLKEN读/写0时钟使能(同步模式使用) 10CPOL读/写0时钟极性(同步模式使用) 9CPHA读/写0时钟相位(同步模式使用) 8LBCL读/写0最后一位时钟脉冲(同步模式使用) 6LBDIE读/写0LIN间断检测中断使能 5LBDL读/写0LIN间断检测长度 3:0ADD3:0读/写0000地址(多机通信使用) 第3章 通用同步/异步收发器接口USART 3.2 USART结构及寄存器说明 Keil的USART对话框 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32ST

49、M32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.3 USART设计实例 3.3.1 USART基本功能程序设计 3.3.2 与计算机通信程序设计 3.3.3 用printf()实现通信程序设计 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.3.1 USART基本功能程序设计 USART初始化子程序 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32S

50、TM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.3.1 USART基本功能程序设计 USART发送/接收子程序 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.3.2 与计算机通信程序设计 USART发送分秒值子程序 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口US

51、ART 3.3.2 与计算机通信程序设计 USART设置分秒值子程序 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.3.3 用printf()实现通信程序设计 用printf()通过USART输出数据除了需要按要求对USART 进行初始化操作外,还需要包含stdio.h文件和fputc()函数 编译时需要使用MicroLIB(在“目标选项”对话框Target (目标)标签的Code Generation(代码生成)下选择 Use MicroLI

52、B),否则程序不能正常工作 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第3章 通用同步/异步收发器接口USART 3.3.3 用printf()实现通信程序设计 Printf()支持的格式字符 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 格式字符说 明格式字符说 明 %c输出单个字符%s输出字符串 %d输出带符号十进制整数%u输出无符号十进制整数 %e输出指数形式实数%f输出小数形式

53、实数 %x输出无符号十六进制整数 (字母小写) %X输出无符号十六进制整数 (字母大写) %p输出十六进制指针值%输出百分号 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 4.2 SPI设计实例 4.2.1 SPI基本功能程序设计 4.2.2 SPI环回程序设计 4.2.3 用SPI控制LCD 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 串行设备接口(Serial peripheral interface:SPI)是

54、工业标 准串行协议,通常用于嵌入式系统,将微处理器连接到 各种片外传感器、转换器、存储器和控制设备 SPI可以实现主设备或从设备协议,当配置为主设备时, SPI可以连接多达16个独立的从设备,发送数据和接收数 据寄存器的宽度可配置为8位或16位 SPI使用2根数据线、1根控制线和1根时钟线实现串行通信 主入从出(MISO) 主出从入(MOSI) 串行时钟(SCK) 从设备选择(NSS) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明

55、时钟极性和时钟相位组合 时钟极性为0时初始电平为低,为1时初始电平为高 时钟相位为0时第1个边沿采样,为1时第2个边沿采样 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 SPI由收发数据和收发 控制两部分组成 收发数据部分包括发送 缓冲区、接收缓存区和 移位寄存器 收发控制部分包括控制 状态寄存器、通信电路、 主控制电路和波特率发 生器 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现ST

56、M32STM32基础篇基础篇 郭书军 cortex_ 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 NSS是一个可选的引脚 功能是用作“片选引脚” 用来选择从设备,通常 配置成通用I/O引脚 当SPI连接多个从设备时 MOSI、MISO和SCK连 接所有的从设备,但每 个从设备的NSS引脚必 须连接到主设备的一个 通用I/O引脚 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 SPI使用的GPIO引脚 前页 返回 ARM

57、 Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ SPI引脚 GPIO引脚 SPI1SPI2主模式配置从模式配置 MOSIPA.07(PB.05)(1)PB.15复用推挽输出浮空输入 MISOPA.06(PB.04)(1)PB.14浮空输入复用推挽输出 SCKPA.05(PB.03)(1)PB.13复用推挽输出浮空输入 NSSPA.04(PA.15)(1)PB.12复用推挽输出浮空输入 注:(1) 括号中的引脚为复用功能重映射引脚 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 SPI通过7个寄存器进

58、行操作 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 偏移地址名称类型复位值说 明 0 x00CR1读/写0 x0000控制寄存器1 0 x04CR2读/写0 x0000控制寄存器2 0 x08SR读0 x0002状态寄存器(TXE=1) 0 x0CDR读/写0 x0000数据寄存器(8/16位) 0 x10CRCPR读/写0 x0007CRC多项式寄存器 0 x14RXCRCR读0 x0000接收CRC寄存器 0 x18TXCRCR读0 x0000发送CRC寄存器 第4章 串行设备接口SP

59、I 4.1 SPI结构及寄存器说明 SPI控制寄存器1(CR1) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型 复位值说 明 11DFF读/写0数据帧格式:0-8位,1-16位 7LSBFIRST 读/写0帧格式:0-先发送MSB,1-先发送LSB 6SPE读/写0SPI使能 5:3 BR2:0读/写000波特率控制(主设备有效): 000-fPCLK/2,001-fPCLK/4,010-fPCLK/8, 011-fPCLK/16, 100-fPCLK/32, 101-fPCLK

60、/64, 110-fPCLK/128, 111-fPCLK/256 2MSTR读/写0主设备选择:0-从设备,1-主设备 1CPOL读/写0时钟极性: 0-空闲时低电平,1-空闲时高电平 0CPHA读/写0时钟相位: 0-第1个边沿采样, 1-第2个边沿采样 第4章 串行设备接口SPI 4.1 SPI结构及寄存器说明 SPI控制寄存器2(CR2) 前页 返回 ARM Cortex-M3ARM Cortex-M3系统设计与实现系统设计与实现STM32STM32基础篇基础篇 郭书军 cortex_ 位名称类型复位值说 明 7TXEIE读/写0TXE中断使能 6RXNEIE读/写0RXNE中断使能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论