贵金属网站建设,网站建设开票多少个点,拉新app渠道,网站开发兼容问题STM32介绍什么是单片机单片机(Single-Chip Microcomputer)是一种集成电路芯片#xff0c;把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种/0口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电…STM32介绍什么是单片机单片机(Single-Chip Microcomputer)是一种集成电路芯片把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种/0口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统在工业控制领域广泛应用。STM32命名规则ST - 意法半导体M - Microelectronics微电子32 - 总线长度博主后续关于STM32相关博客使用的都是STM32F103C8T6这一个型号STM32F103C8T6单片机标准外设库和HAL库的区别标准外设库STM32标准外设库之前的版本也称固件函数库或简称固件库是一个固件函数包它由程序、数据结构和宏组成包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例为开发者访问底层硬件提供了一个中间API通过使用固件函数库无需深入掌握底层硬件细节开发者就可以轻松应用每一个外设。因此使用固态函数库可以大大减少用户的程序编写时间进而降低开发成本。每个外设驱动都由一组函数组成这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动API对该驱动程序的结构函数和参数名称都进行了标准化。将寄存器底层操作都封装起来提供一整套接口(API)供开发者调用每款芯片都编写了一份库文件也就是工程文件里stm32F1xx...之类的配置结构体变量成员就可以修改外设的配置寄存器从而选择不同的功能大大降低单片机开发难度但是在不同芯片间不方便移植HAL库HAL库 HAL是Hardware Abstraction Layer的缩写中文名称是硬件抽象层HAL库工程一般使用STM32CubeMX软件来生成工程。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件更方便的实现跨STM32产品的最大可移植性。优势就是不需要开发工程师再关注所用MCU型号只需要专注所以要的功能软件开发工作。而且是未来主推的方向正在不断的推出更新。HAL库推出的同时也加入了很多第三方的中间件有RTOSUSBTCP / IP和图形等等。和标准库对比起来STM32的HAL库更加的抽象ST最终的目的是要实现在STM32系列MCU之间无缝移植甚至在其他MCU也能实现快速移植。ST公司目前主力推的开发方式新的芯片已经不再提供标准库为了实现在不同芯片之间移植代码为了兼容所有芯片导致代码量庞大执行效率低下GPIO外设GPIO是通用输入输出端口的简称简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与外部设备连接起来从而实现与外部通讯、控制以及数据采集的功能。GPIO相关寄存器每个GPI/O端口有两个32位配置寄存器(GPIOx_CRLGPIOx_CRH)两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR)一个32位置位/复位寄存器(GPIOx_BSRR)一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。GPIO的工作模式输入浮空输入浮空状态下I/O口的电平状态是不确定的完全是由外部的输入确定的如果在该引脚浮空的情况下读取该引脚的电平是不确定的。输入上拉I/O口在无输入的状态下保持着高电平。输入下拉I/O口在无输入的状态下保持着低电平。模拟输入输入信号不经施密特触发器直接输入输入信号为模拟量而不是数字量而其他输入方式均是输入数字量。推挽输出当给予一个高低电平信号时可以真正的输出高3.3v低0v电平。开漏输出当给予一个低电平信号时可以真正的输出低电平0v。当给予一个高电平信号时无法真正的输出高电平即高电平没有驱动能力需要借助外部上拉电阻完成对外驱动才能输出高电平5v。推挽复用功能此时I/O受内部外设控制如UART的RX、TX等等开漏复用功能此时I/O受内部外设控制如IIC的SCL、SDA等等复位和时钟RCC复位系统复位除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器以外系统复位将复位所有寄存器至它们的复位状态。系统复位事件当发生以下任一事件时产生一个系统复位NRST引脚上的低电平(外部复位) 窗口看门狗计数终止(WWDG复位) 独立看门狗计数终止(IWDG复位) 软件复位(SW复位) 低功耗管理复位电源复位电源复位将复位除了备份区域外的所有寄存器。电源复位事件当发生以下任一事件时产生一个系统复位上电/掉电复位(POR/PDR复位) 从待机模式中返回备份区复位备份区域拥有两个专门的复位它们只影响备份区域。备份区复位事件当发生以下任一事件时产生一个系统复位软件复位备份区域复位可由设置备份域控制寄存器 (RCC_BDCR)中的BDRST位产生。在VDD和VBAT两者掉电的前提下VDD或VBAT上电将引发备份区域复位。时钟RCC时钟打开对应的设备才会工作。时钟来源三种不同的时钟源可被用来驱动系统时钟(SYSCLK)HSI振荡器时钟高速内部时钟HSE振荡器时钟高速外部时钟PLL时钟锁相环倍频时钟二级时钟源40kHz低速内部RCLSIRC振荡器32.768kHz低速外部晶体LSE晶体时钟树对于时钟的学习后续用到不同的外设时再对时钟进行不同深度的学习。使用STM32CubeMX配置HSE时钟配置HSE时钟为晶体/陶瓷谐振器Crystal/Ceramic Resonator配置时钟如何构建STM32工程点灯使用STM32CubeMX新建一个工程左上角输入板子对应的型号然后选择型号STM32F103C8T6配置SYSDebug方式选择串行线根据板子的原理图找到LED灯对应的引脚如原理图将LED1、LED2PB8、PB9配置成输出引脚输出低电平配置工程名称、工程路径选择固件库生成工程打开工程如何下载程序到STM32单片机插入STLink烧录器手动安装驱动程序创建hex文件Debug方式选择ST-Link编译和烧录文件