目录页010203第一部分:STM32单片机入门第二部分:GPIO、串口介绍第三部分:STM32CubeMX配置MDK软件仿真STM32单片机01ARM-CORTEX-M内核213英国ARM公司是全球领先的半导体知识产权(IP)提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构ARM是什么ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,Cortex-M系列针对成本和功耗敏感的MCU和终端应用CortexSTM32代表ARMCortex-M内核的32位微控制器,STMicroelectronics(意法半导体)STM32单片机含义1.STM32有5个时钟源:HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者用作PLL时钟输入。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。主要供独立看门狗和自动唤醒单元使用。④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。RTC⑤、PLL为锁相环倍频输出。STM32F4有两个PLL:主PLL(PLL)由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。第一个输出PLLP用于生成高速的系统时钟(最高168MHz)第二个输出PLLQ用于生成USBOTGFS的时钟(48MHz),随机数发生器的时钟和SDIO时钟。专用PLL(PLLI2S)用于生成精确时钟,从而在I2S接口实现高品质音频性能。2.系统时钟SYSCLK可来源于三个时钟源:①、HSI振荡器时钟②、HSE振荡器时钟③、PLL时钟任何一个外设在使用之前,必须首先使能其相应的时钟!Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。常用的RTOS,都是使用Systick作为心跳时钟Systick定时器就是系统滴答定时器,一个24位的倒计数定时器,计到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。串口、定时器02以STM32F407ZGT6为例-一共有7组IO口-每组IO口有16个IO-一共16X7=112个IO外加2个PH0和PH1一共114个IO口GPIOA,GPIOB---GPIOGPH0,PH1STM32的大部分引脚除了当GPIO使用外,还可以复用为外设功能引脚(比如串口)4种输入模式:输入浮空输入上拉输入下拉模拟输入4种输出模式:开漏输出(带上拉或者下拉)开漏复用功能(带上拉或者下拉)推挽式输出(带上拉或者下拉)推挽式复用功能(带上拉或者下拉)4种最大输出速度:-2MHZ-25MHz-50MHz-100MHzGPIO工作方式推挽输出:可以输出强高低电平,连接数字器件开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极.要得到高电平状态需要上拉电阻才行.适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)所有IO口都可以作为中断输入20%处理器与外部设备通信的两种方式:并行通信-传输原理:数据各个位同时传输。-优点:速度快-缺点:占用引脚资源多串行通信-传输原理:数据按位顺序传输。-优点:占用引脚资源少-缺点:速度相对较慢串行通信:按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。串行通信的通信方式同步通信:带时钟同步信号传输。-SPI,IIC通信接口异步通信:不带时钟同步信号。-UART(通用异步收发器),单总线通信标准引脚说明通信方式通信方向UART(通用异步收发器)TXD:发送端RXD:接受端GND:公共地异步通信全双工单总线(1-wire)DQ:发送/接受端异步通信半双工SPISCK:同步时钟MISO:主机输入,从机输出MOSI:主机输出,从机输入同步通信全双工I2CSCL:同步时钟SDA:数据输入/输出端同步通信半双工STM32的串口通信接口UART:通用异步收发器USART:通用同步异步收发器-RXD:数据输入引脚。数据接受。-TXD:数据发送引脚。数据发送。全双工异步通信。小数波特率发生器系统,提供精确的波特率。可配置的16倍过采样或8倍过采样,因而为速度容差与时钟容差的灵活配置提供了可能。可编程的数据字长度(8位或者9位);可配置的停止位(支持1或者2位停止位);可配置的使用DMA多缓冲器通信。单独的发送器和接收器使能位。检测标志:①接受缓冲器②发送缓冲器空③传输结束标志多个带标志的中断源。触发中断。其他:校验控制,四个错误检测标志。UART异步通信方式特点:STM32串口通信过程数据接收过程:MCU内核输入数据缓冲器串行输入移位寄存器MCU内核输出数据缓冲器串行输出移位寄存器数据发送过程:RXDTXD串行数据输入串行数据输出外部设备外部设备……STM32串口异步通信需要定义的参数:①起始位②数据位(8位或者9位)③奇偶校验位(第9位)④停止位(1,1.5,2位)⑤波特率设置范例:STM32CubeMX配置(HAL库)031、配置时钟2、配置Debug方式(一般SWD)3、选择外设4、打开工程,初始化相关外设