




免费预览已结束,剩余205页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,目录,第1章STM32MCU简介第2章通用并行接口GPIO第3章通用同步/异步收发器接口USART第4章串行设备接口SPI第5章定时器TIM第6章模数转换器ADC第7章内部集成电路总线接口I2C第8章嵌套向量中断控制器NVIC第9章直接存储器存取DMA第10章实时钟系统设计,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,1.1STM32MCU结构1.2STM32MCU存储器映像1.3STM32MCU系统时钟树1.4Cortex-M3简介,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,第1章STM32MCU简介,1.1STM32MCU结构由控制单元、从属单元和总线矩阵三大部分组成,控制单元和从属单元通过总线矩阵相连接控制单元包括Cortex-M3内核和两个DMA控制器(DMA1和DMA2)从属单元包括存储器(Flash和SRAM等)和设备(连接片外设备的接口和片内设备),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.1STM32MCU结构连接片外设备的接口有并行接口和串行接口,并行接口即通用IO接口GPIO,串行接口有USART、SPI、I2C、USB和CAN等片内设备有定时器TIM、模数转换器ADC和数模转换器DAC等,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.2STM32MCU存储器映像程序存储器、数据存储器和输入输出端口寄存器被组织在同一个4GB的线性地址空间内,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.3STM32MCU系统时钟树系统时钟树由系统时钟源、系统时钟和设备时钟等部分组成系统时钟源有4个:高速外部时钟HSE、低速外部时钟LSE、高速内部时钟HSI和低速内部时钟LSI外部时钟用OSC实现,内部时钟用RC实现,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.3STM32MCU系统时钟树系统时钟SYSCLK可以是HSE或HSI,也可以是HSE或HSI通过锁相环倍频后的锁相环时钟PLLCLKSYSCLK经AHB预分频器分频后得到AHB总线时钟HCLK,HCLK经APB1/APB2预分频器分频后得到APB1/APB2总线时钟PCLK1和PCLK2,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.3STM32MCU系统时钟树系统时钟树中的时钟选择、预分频值和外设时钟使能等都可以通过对复位和时钟控制(RCC)寄存器编程实现,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.3STM32MCU系统时钟树Keil的电源,复位和时钟控制对话框,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.3STM32MCU系统时钟树APB2设备时钟使能寄存器(RCC_APB2ENR),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.3STM32MCU系统时钟树Keil的APB桥对话框,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介Cortex-M3是采用哈佛结构的32位处理器内核,拥有独立的指令总线和数据总线,两者共享同一个4GB存储空间Cortex-M3内建一个嵌套向量中断控制器(NVIC:NestedVectoredInterruptController),支持可嵌套中断、向量中断和动态优先级等Cortex-M3内部还包含一个系统滴答定时器SysTick,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介SysTick的核心是1个24位递减计数器,使用时根据需要设置初值,启动后在系统时钟的作用下递减,减到0时置计数标志位并重装初值系统可以查询计数标志位,也可以在中断允许时产生SysTick中断,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介SysTick通过4个32位寄存器进行操作,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介控制状态寄存器有3个控制位和1个状态位,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介Keil的SysTick对话框,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介SysTick等片内设备和接口的编程操作方法有2种:直接操作寄存器和使用库函数使用库函数和使用自定义结构操作寄存器本质相同和使用库函数相比,使用直接操作寄存器进行软件设计有下列优点:(1)源程序简单,目标程序小。(2)直接操作寄存器有利于对硬件的理解,比较适合电子、通信和自动化等相关专业的学生学习使用直接操作寄存器的主要缺点是移植性较差,而使用库函数移植性较好,比较适合计算机等相关专业的学生学习使用,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第1章STM32MCU简介,1.4Cortex-M3简介嵌入式系统的C语言程序设计与一般的C语言程序设计基本相同,主要差别有2点:(1)嵌入式系统C语言程序设计主要使用寄存器操作,而寄存器操作和变量操作实质相同,寄存器的名称实质就是变量名称(2)寄存器操作中控制和状态寄存器的操作通常是位操作包括“位与&”、“位或|”和“位异或”(注意“位与&”和“位或|”与“逻辑与&”和“逻辑或|”的区别)使用位操作的主要目的是只对控制和状态寄存器的指定位进行操作,对其他位的值不产生影响,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.1GPIO结构及寄存器说明2.2GPIO设计实例2.2.1直接操作寄存器软件设计2.2.2使用库函数范例程序(V2.0.1)2.2.3用GPIO控制LCD,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.1GPIO结构及寄存器说明GPIO包括多个16位I/O端口,每个端口可以独立设置3种输入方式和4种输出方式,并可独立地置位或复位GPIO由寄存器、输入驱动器和输出驱动器等部分组成,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.1GPIO结构及寄存器说明GPIO通过7个32位寄存器进行操作,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.1GPIO结构及寄存器说明每个端口的4个配置位是CNF1:0和MODE1:0,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,注:(1)ODR=1:上拉,ODR=0:下拉,(2)01/10/11依次对应最大输出频率为10MHz/2MHz/50MHz,第2章通用并行接口GPIO,前页返回,2.1GPIO结构及寄存器说明Keil的GPIOA对话框,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2GPIO设计实例系统包括Cortex-M3CPU(内嵌SysTick定时器)、存储器、2个按键接口和4个LED接口,实现用2个按键控制4个LED的流水显示方向,4个LED流水显示,每1s移位1次,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计头文件(main.h),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计源文件(main.c)(主程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计源文件(main.c)(定时器子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计源文件(main.c)(按键子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计源文件(main.c)(LED子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计源文件(main.c)(LED子程序)(续),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计1、Keil的安装运行Keil安装程序MDK412.exe,将Keil安装到默认文件夹C:Keil。安装完成后,下列文件夹包含与STM32F10 x系列MCU相关的范例程序、头文件和库文件(V2.0.1):C:KeilARMExamplesSTSTM32F10 xFWLibExamplesC:KeilARMINCSTSTM32F10 x:stm32f10 x_*.hC:KeilARMRV31LIBSTSTM32F10 x:stm32f10 x_*.c,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计1、Keil的安装2、新建工程3、新建、添加C语言源文件4、生成目标程序文件5、使用仿真器调试和运行目标程序文件6、使用调试器调试和运行目标程序文件,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计5、使用仿真器调试和运行目标程序文件使用仿真器调试和运行目标程序文件通过仿真硬件实现,不需要目标硬件使用仿真器调试和运行目标程序还具有分析(Analysis)功能,包括逻辑分析仪(LogicAnalyzer)、性能分析仪(PerformanceAnalyzer)和代码覆盖率(CodeCoverage)逻辑分析仪(LogicAnalyzer)是非常有用的调试功能,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计5、使用仿真器调试和运行目标程序文件,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.1直接操作寄存器软件设计6、使用调试器调试和运行目标程序文件使用调试器调试和运行目标程序文件需要调试器和目标硬件,并且需要安装调试器驱动程序和调试器插件程序,并对调试器进行设置(1)安装调试器驱动程序Colink调试器驱动安装程序CDM20828_Setup.exeColinkEx调试器驱动安装程序ColinkExUsbDriver-1.2.1.exe(2)安装调试器插件程序调试器插件安装程序CoMDKPlugin-1.3.1.exe(3)调试器设置使用调试器的步骤和使用仿真器基本相同,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.2使用库函数范例程序(V2.0.1)在C:KeilARMExamplesSTSTM32F10 xFWLibExamplesSysTick目录包含有使用库函数的SysTick和GPIO范例程序其中包含下列7个文件:main.c:主程序文件main.h:主程序头文件stm32f10 x_it.c:中断服务程序文件stm32f10 x_it.h:中断服务程序头文件platform_config.h:开发板配置文件stm32f10 x_conf.h:库配置文件readme.txt:范例说明文件,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.2使用库函数范例程序(V2.0.1),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD1、LCM046简介LCM046是4位多功能通用型8段(8.8.8.8)液晶显示模块内置显示RAM,可以显示任意字段笔划,3-4线串行接口,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD1、LCM046简介LCM046写操作时序写命令格式为:100命令代码(C7-C0:8位)0,共12位写数据格式为:101地址(A5-A0:6位)数据(D0-D3:4位),共13位,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD1、LCM046简介LCM046常用命令代码初始化模块的步骤是:(1)初始化模块命令(2)定义内部RC振荡器工作(3)开振荡器(4)开显示器,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD1、LCM046简介LCM046地址数据,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD2、GPIO控制LCM046程序设计(写子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD2、GPIO控制LCM046程序设计(写命令/数据子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD2、GPIO控制LCM046程序设计(初始化子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD2、GPIO控制LCM046程序设计(显示处理子程序),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第2章通用并行接口GPIO,前页返回,2.2.3用GPIO控制LCD2、GPIO控制LCM046程序设计(信号波形),ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.1UART简介3.2USART结构及寄存器说明3.3USART设计实例3.3.1USART基本功能程序设计3.3.2与计算机通信程序设计3.3.3用printf()实现通信程序设计,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.1UART简介并行/串行:同步/异步:UARTUniversalAsynchronousReceiver/TransmitterUARTTxDRxDGNDSPIMISOMOSISCLKNSSGNDI2CSDASCLGNDUSB5VD+D-GND,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.1UART简介UART的相关标准规定了接口的机械特性、电气特性和功能特性等,UART的电气特性标准包括RS-232C、RS422、RS423和RS485等,其中RS-232C是最常用的串行通信标准RS-232C的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”,其中DTE包括微机、微控制器和打印机等,DCE包括调制解调器MODEM、GSM模块和WiFi模块等,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.1UART简介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转换器连接,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.1UART简介RS-232C功能特性规定各引脚的功能其中最常用的引脚只有3个:RXD(接收数据)、TXD(发送数据)和GND(地),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.1UART简介RS-232C连接,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,DTE2-RXD3-TXD4-DTR6-DSR7-RTS8-CTS1-DCD9-RI5-GND,DCE2-RXD3-TXD4-DTR6-DSR7-RTS8-CTS1-DCD9-RI5-GND,DTE2-RXD3-TXD4-DTR6-DSR7-RTS8-CTS1-DCD9-RI5-GND,DTE2-RXD3-TXD4-DTR6-DSR7-RTS8-CTS1-DCD9-RI5-GND,第3章通用同步/异步收发器接口USART,3.1UART简介RS-232C指标:数据速率和数据格式数据速率用波特率表示:120024004800960019200数据格式包括1个起始位、5-8个数据位、0-1个校验位和1-2个停止位通信双方的数据速率和数据格式必须一致,否则无法实现通信,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明USART由收发数据和收发控制两部分组成收发数据使用双重数据缓冲:收发数据寄存器和收发移位寄存器收发控制包括控制状态寄存器、发送器控制、接收器控制、中断控制和波特率控制等,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明USART使用的GPIO引脚,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,注:(1)括号中的引脚为复用功能重映射引脚,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明USART通过7个寄存器进行操作,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明USART状态寄存器(SR),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明USART控制寄存器1(CR1),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明USART控制寄存器2(CR2),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.2USART结构及寄存器说明Keil的USART对话框,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3USART设计实例3.3.1USART基本功能程序设计3.3.2与计算机通信程序设计3.3.3用printf()实现通信程序设计,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3.1USART基本功能程序设计USART初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3.1USART基本功能程序设计USART发送/接收子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3.2与计算机通信程序设计USART发送分秒值子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3.2与计算机通信程序设计USART设置分秒值子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3.3用printf()实现通信程序设计用printf()通过USART输出数据除了需要按要求对USART进行初始化操作外,还需要包含stdio.h文件和fputc()函数编译时需要使用MicroLIB(在“目标选项”对话框Target(目标)标签的CodeGeneration(代码生成)下选择UseMicroLIB),否则程序不能正常工作,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第3章通用同步/异步收发器接口USART,3.3.3用printf()实现通信程序设计Printf()支持的格式字符,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明4.2SPI设计实例4.2.1SPI基本功能程序设计4.2.2SPI环回程序设计4.2.3用SPI控制LCD,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明串行设备接口(Serialperipheralinterface:SPI)是工业标准串行协议,通常用于嵌入式系统,将微处理器连接到各种片外传感器、转换器、存储器和控制设备SPI可以实现主设备或从设备协议,当配置为主设备时,SPI可以连接多达16个独立的从设备,发送数据和接收数据寄存器的宽度可配置为8位或16位SPI使用2根数据线、1根控制线和1根时钟线实现串行通信主入从出(MISO)主出从入(MOSI)串行时钟(SCK)从设备选择(NSS),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明时钟极性和时钟相位组合时钟极性为0时初始电平为低,为1时初始电平为高时钟相位为0时第1个边沿采样,为1时第2个边沿采样,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明SPI由收发数据和收发控制两部分组成收发数据部分包括发送缓冲区、接收缓存区和移位寄存器收发控制部分包括控制状态寄存器、通信电路、主控制电路和波特率发生器,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明NSS是一个可选的引脚功能是用作“片选引脚”用来选择从设备,通常配置成通用I/O引脚当SPI连接多个从设备时MOSI、MISO和SCK连接所有的从设备,但每个从设备的NSS引脚必须连接到主设备的一个通用I/O引脚,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明SPI使用的GPIO引脚,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,注:(1)括号中的引脚为复用功能重映射引脚,第4章串行设备接口SPI,4.1SPI结构及寄存器说明SPI通过7个寄存器进行操作,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明SPI控制寄存器1(CR1),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明SPI控制寄存器2(CR2),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.1SPI结构及寄存器说明SPI状态寄存器(SR),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2SPI设计实例4.2.1SPI基本功能程序设计4.2.2SPI环回程序设计4.2.3用SPI控制LCD,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.1SPI基本功能程序设计SPI初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.1SPI基本功能程序设计SPI发送/接收子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.2SPI环回程序设计,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.2SPI环回程序设计,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.3用SPI控制LCD对比LCM046写操作时序和SPI时钟极性和时钟相位组合图可以看出:LCM046写操作时序和SPI时钟极性=1、时钟相位=1的信号波形相同,因此可以用SPI控制LCM046实验证明:SPI时钟极性=0、时钟相位=0时也可以控制LCM046正常工作,这是利用SPI控制外设的典型方法,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.3用SPI控制LCDSPI初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.3用SPI控制LCDSPI发送子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.3用SPI控制LCDLCM046写命令和写数据子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第4章串行设备接口SPI,4.2.3用SPI控制LCDLCM046初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明5.2TIM设计实例5.2.11s定时程序设计5.2.2矩形波输出程序设计5.2.3矩形波测量程序设计,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明STM32定时器除系统滴答定时器SysTick外,还有高级控制定时器TIM1/8、通用定时器TIM2-5、基本定时器TIM6/7、实时钟RTC、独立看门狗IWDG和窗口看门狗WWDG等高级控制定时器除了具有刹车输入BKIN、互补输出CHxN和重复次数计数器外与通用定时器的主要功能基本相同,两者都包含基本定时器的功能实时钟提供时钟日历的功能。独立看门狗和窗口看门狗用来检测和解决软件错误引起的故障,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明高级控制定时器主要由时基单元、输入捕获和输出比较等部分组成时基单元包含16位计数器CNT、预分频器PSC、自动重装载寄存器ARR和重复次数计数器RCR时基单元是定时器的核心,也是基本定时器的主要功能单元,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明输入捕获包含输入滤波器和边沿检测器、预分频器和捕获/比较寄存器等,可以测量输入信号的周期和脉冲宽度输出比较包含捕获/比较寄存器、死区发生器DTG和输出控制,可以产生PWM等,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明TIM使用的GPIO引脚,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明TIM通过20个寄存器进行操作,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明TIM通过20个寄存器进行操作(续),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.1TIM结构及寄存器说明Keil的TIM1对话框,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2TIM设计实例5.2.11s定时程序设计5.2.2矩形波输出程序设计5.2.3矩形波测量程序设计,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.11s定时程序设计1s定时(定时精度0.5ms)的实现只用到基本定时器(时基单元)的核心功能,相关的寄存器及其内容为,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.11s定时程序设计实现1s定时的初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.11s定时程序设计实现1s定时的处理子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.2矩形波输出程序设计用TIM1输出矩形波(周期1s、占空比0.1-0.9,按步长0.1/s增加)可以在1s定时的基础上用定时器的输出比较功能实现,相关的寄存器及其内容为,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.2矩形波输出程序设计TIM1输出矩形波初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.2矩形波输出程序设计TIM1输出矩形波处理子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.2矩形波输出程序设计使用仿真器调试和运行程序时可以用逻辑分析仪观测PA.08(PORTA.08)输出的波形,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.3矩形波测量程序设计用TIM2测量矩形波的周期和脉冲宽度(测量精度0.25ms)在用TIM1输出矩形波的基础上用定时器的输入捕获功能实现,相关的寄存器及其内容为,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.3矩形波测量程序设计用TIM2测量矩形波的周期和脉冲宽度(测量精度0.25ms)在用TIM1输出矩形波的基础上用定时器的输入捕获功能实现,相关的寄存器及其内容为(续),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.3矩形波测量程序设计TIM2测量矩形波周期和脉冲宽度初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第5章定时器TIM,5.2.3矩形波测量程序设计TIM2测量矩形波周期和脉冲宽度处理子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明6.2ADC设计实例6.2.1用ADC1规则通道实现外部模拟信号的模数转换6.2.2用ADC1注入通道实现内部温度传感器的温度测量,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明模数转换器ADC的主要功能是将模拟信号转化为数字信号以便于微控制器进行数据处理ADC按转换原理分为逐次比较型、双积分型和S-D型逐次比较型ADC通过逐次比较将模拟信号转化为数字信号转换速度快,但精度较低,是最常用的ADC双积分型ADC通过两次积分将模拟信号转化为数字信号,精度高,抗干扰能力强,但速度较慢,主要用于万用表等测量仪器S-D型ADC具有逐次比较型和双积分型的双重优点,正在逐步广泛地得到应用,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明STM32ADC是12位逐次比较型,多达18个通道,可测量16个外部和2个内部信号源,各通道的转换可以单次、连续、扫描或间断模式执行,转换结果可以左对齐或右对齐方式存储在16位数据寄存器中STM32ADC的模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。输入时钟不得超过14MHz,由PCLK2经分频产生,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明STM32ADC主要由模拟多路开关、模拟至数字转换器、数据寄存器和触发选择等部分组成转换通道分为规则通道和注入通道两组规则通道由最多16个通道组成,按顺序转换注入通道由最多4个通道组成,可插入转换,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明ADC使用的GPIO引脚ADC1的通道16内部与温度传感器相连通道17内部与参考电源VREFINT相连,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明ADC通过20个寄存器进行操作,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明ADC通过20个寄存器进行操作(续),前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.1ADC结构及寄存器说明Keil的ADC1对话框,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2ADC设计实例6.2.1用ADC1规则通道实现外部模拟信号的模数转换6.2.2用ADC1注入通道实现内部温度传感器的温度测量,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.1用ADC1规则通道实现外部模拟信号的模数转换规则通道相关的寄存器及其内容,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.1用ADC1规则通道实现外部模拟信号的模数转换ADC规则通道初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.1用ADC1规则通道实现外部模拟信号的模数转换ADC规则通道处理子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.2用ADC1注入通道实现内部温度传感器的温度测量STM32中有一个温度传感器,与ADC1的通道16相连,可以用来测量芯片的温度温度传感器的最大采样时间为17.1ms,温度范围为-40125,温度计算公式如下:T=25+(1.43V)/0.0043T=25+(5855.853.3*N)/17.6085其中:V为温度传感器电压值,N为模数转换后的数字值,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.2用ADC1注入通道实现内部温度传感器的温度测量注入通道相关的寄存器及其内容,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.2用ADC1注入通道实现内部温度传感器的温度测量ADC注入通道初始化子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第6章模数转换器ADC,6.2.2用ADC1注入通道实现内部温度传感器的温度测量ADC注入通道处理子程序,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第7章内部集成电路总线接口I2C,7.1I2C结构及寄存器说明7.2I2C设计实例7.2.124C32A简介7.2.224C32A程序设计7.2.324C32A程序应用,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第7章内部集成电路总线接口I2C,7.1I2C结构及寄存器说明内部集成电路总线接口I2C是通信控制领域广泛采用的一种总线标准,用于连接微控制器和外围设备,连接在总线上的每个设备都有唯一的7/10位地址I2C使用一根双向串行数据线SDA和一根双向串行时钟线SCL实现主/从设备间的多主串行通信SDA和SCL的时序关系,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第7章内部集成电路总线接口I2C,7.1I2C结构及寄存器说明起始条件是在SCL高电平时SDA从高电平变为低电平,停止条件是在SCL高电平时SDA从低电平变为高电平SDA上的数据必须在SCL高电平时保持稳定,低电平时可以改变。发送器发送数据后释放SDA(高电平),接收器接收数据后必须在SCL低电平时将SDA变为低电平,并在SCL高电平时保持稳定,作为对发送器的应答,前页返回,ARMCortex-M3系统设计与实现STM32基础篇,郭书军cortex_m3,第7章内部集成电路总线接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宠物医院运营效率提升-洞察及研究
- 隧道与其他基础设施衔接方案
- 配电安规知识考查常见问题试卷及答案
- 发热原因待查的课件
- 边缘计算监测技术-洞察及研究
- 2024年煤炭生产经营单位(地质地测安全管理人员)复审考试及考试题库及答案
- 辽海版音乐八上《小河淌水》听评课记录
- 发明专利挖掘课件教学
- 2024年公需科目《高质量发展》考试题及答案
- 发型师染发入门知识培训课件
- 电气行业与市场分析
- 2025年乡村全科助理医师考试题库及答案
- 排水设施养护管理制度
- 小学植物百科知识
- 《高端会所模式营销》课件
- 循环水地下管道安装施工方案
- 检验科生物安全风险评估报告
- 混合痔的中医个案护理
- 2023年广西现代物流集团社会招聘笔试真题
- 大数据开发工程师招聘笔试题及解答(某世界500强集团)2025年
- 【课件】第六单元碳和碳的氧化物+新版教材单元分析-2024-2025学年九年级化学人教版(2024)上册
评论
0/150
提交评论