stm32
文章平均质量分 81
丰年稻香
保持好奇心,春天播种,秋天收获
展开
-
Stm32F103R6之串口
目录概述USART介绍多处理器通信LIN(局域互联网)模式多处理器通信和LIN模式区别概述串口分为通用同步异步收发器(USART)和通用异步收发器(UART)。USART在UART的基础上增加数据同步时钟,异步通讯需要数据收发双方约定波特率,如115200,同步通讯不需要约定,靠同步时钟来同步数据。异步通讯的弊端是数据收发因双发的晶振差异,时钟误差等导致波特率有误差,有可能对通讯造成影响,尤其是高速串口通信。而同步通讯没有波特率的差异,但需要多一个同步时钟信号脚。USART介原创 2020-09-20 11:09:23 · 3958 阅读 · 0 评论 -
Stm32F103R6之调试支持
目录概述SWJ调试端口(serial wire and JTAG)利用串行接口并释放不用的调试脚作为普通I/O口概述Cortex™-M3内核含硬件调试模块,支持复杂的调试操作。硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。当STM32F10x微控制器连接到调试器并开始调试时,调试器将使用内核的硬件调试模块进行调试操作。支持两种调试接口:● 串行接口原创 2020-09-20 11:02:06 · 1312 阅读 · 0 评论 -
Stm32F103R6之器件签名
目录概述闪存容量寄存器产品唯一身份标识寄存器(96位)概述电子签名存放在闪存存储器模块的系统存储区域,可以通过JTAG/SWD或者CPU读取。它所包含的芯片识别信息在出厂时编写,用户固件或者外部设备可以读取电子签名,用以自动匹配不同配置的STM32F10xxx微控制器。闪存容量寄存器基地址:0x1FFF F7E0只读,它的内容在出厂时编写。图 1闪存容量寄存器产品唯一身份标识寄存器(96位)产品唯一的身份标识非常适合:● 用来作为序列号(例如USB字符序列原创 2020-09-20 11:00:00 · 343 阅读 · 0 评论 -
Stm32F103R6之以太网
目录概述功能介绍站点管理接口(SMI)独立于介质的接口:MII精简的独立于介质的接口:RMII精确时间协议(IEEE1588 PTP)概述stm32以太网模块支持两种标准接口:1、 连接到外接的物理层(PHY)模块2、 IEEE 802.3协议定义的独立于介质的接口(MII)和简化的独立于介质的接口(RMII)。功能介绍如果要详细介绍以太网,一天一夜也讲不完,这里只能大概讲讲stm32以太网模块的特点。站点管理接口(SMI)站点管理接口(SMI)允许应原创 2020-09-20 10:55:08 · 2518 阅读 · 0 评论 -
Stm32F103R6之I2C
目录概述I2C功能SMBus概述I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—System Management Bus)和PMBus(电源管理总线—Power Management Bus)。图 1I2C功能框图I2C功能网上有评论说stm32的硬件I2C有bug,经原创 2020-09-20 10:42:26 · 887 阅读 · 0 评论 -
Stm32F103R6之SPI
目录概述I2S功能SPI功能概述SPI接口可以配置为支持SPI协议或者支持I2S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式。串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。I2S也是一种3引脚的同步串行接口通讯协议。它支持四种音频标准,包括飞利浦I2S标准,MSB和LSB对齐标准,以及PCM标准。它在半双工通讯中,可以工作在主和从2种模式下。当它原创 2020-09-20 10:40:50 · 1063 阅读 · 0 评论 -
Stm32F103R6之控制器局域网
目录概述双CANbxCAN工作模式CAN协议特点:ISO11898标准CAN物理特性CAN协议帧概述bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。双CAN● CAN1:是主bxCAN,它负责管理在从bxCAN和512原创 2020-09-20 10:38:09 · 780 阅读 · 0 评论 -
Stm32F103R6之USB
目录概述USB全速设备接口USB OTG全速(OTG_FS)主机模式功能设备模式功能概述Stm32F103集成了USB全速设备接口(USB)和USB OTG全速(OTG_FS)两个模块。USB全速设备接口只支持做USB设备,OTG_FS是双重角色设备(DRD)控制器,支持主机端和设备端的功能。图 1USB设备框图图 2OTG_FS框图USB全速设备接口标准USB共四根线组成,除VCC/GND外,另外为D+,D-;这两根数据线采用的是差分电压的方式进行数原创 2020-09-20 10:33:22 · 2083 阅读 · 0 评论 -
Stm32F103R6之SDIO
目录概述主要功能SDIO总线拓扑SDIO适配器命令通道数据通道SDIO AHB接口卡功能描述概述SD/SDIO MMC卡主机模块(SDIO)在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和CE-ATA设备间提供了操作接口。MMC、CE-ATA、SD、TF、SDIO的异同请点击链接。主要功能● 与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。● 与较早的多媒体卡系统规格版本全兼容(向前兼容)。原创 2020-09-20 10:31:30 · 1818 阅读 · 0 评论 -
MMC、CE-ATA、SD、TF、SDIO的异同
目录MMCSDTFSDIOCE-ATAMMCMMC即多媒体卡(MultiMediaCard),7Pin,MMC协议支持SPI和MMC两种模式。MMC模式总线位宽可达4bit,读写最高时钟频率可达50MHz,而SPI模式总线位宽只有1bit,传输速率较MMC慢,但是对硬件要求相对较低。图 1MMC接口定义SDSD卡即数字安全记忆卡(Secure Digital Memory Card),有9Pin,它的数据传送和物理规范由MMC发展而来,向下兼容多媒体卡(Multi原创 2020-09-19 13:43:51 · 2619 阅读 · 0 评论 -
Stm32F103R6之FSMC
目录概述功能描述支持的存储器和操作外部设备地址映像NOR和PSRAM地址映像NAND和PC卡地址映像NOR闪存和PSRAM控制器概述灵活的静态存储器控制器(FSMC)能够将片外设备挂在单片机的地址和数据总线上,使单片机可以像访问内存一样访问片外设备。功能描述FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是:● 将AHB传输信号转换到适当的外部设备协议。● 满足访问外部设备的时序要求。所有的外部存储器共享控制器输出的地址、数据和原创 2020-09-19 13:42:47 · 2035 阅读 · 0 评论 -
Stm32F103R6之看门狗
目录概述独立看门狗窗口看门狗概述Stm32F103的看门狗分为两种:独立看门狗(IWDG)和窗口看门狗(WWDG)。提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程原创 2020-09-19 13:41:42 · 811 阅读 · 0 评论 -
Stm32F103R6之实时时钟(RTC)
目录概述主要特性读RTC寄存器配置RTC寄存器概述实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。执行以下操作将使能对后备寄存器和RTC的访问:● 设置寄存原创 2020-09-19 13:40:17 · 2249 阅读 · 0 评论 -
Stm32F103R6之定时器
目录概述基本定时器通用定时器高级控制定时器概述Stm32F103的定时器有高级控制定时器、通用定时器、基本定时器之分,核心都是一个16位的自动装载计数器。基本定时器基本定时器一般用途就是定时,还可以为DAC提供时钟,主要特性包括:● 16位自动重装载累加计数器● 16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频● 触发DAC的同步电路● 在更新事件(计数器溢出)时产生中断/DMA请求图 1基本定时器框图通原创 2020-09-19 13:38:14 · 2552 阅读 · 0 评论 -
Stm32F103R6之DAC
目录概述配置DAC的一般步骤利用DAC生成噪声利用DAC生成三角波双DAC通道转换概述数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结原创 2020-09-17 18:47:00 · 1554 阅读 · 0 评论 -
Stm32F103R6之ADC
目录概述通道选择转换模式模拟看门狗校准外部触发转换DMA请求双ADC模式温度传感器概述模拟/数字转换(ADC)可测量多个通道的外部和内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。图 1ADC框图通道选择通常规则通道组中可以安排最多16个通道,而注入通道组可以安排最多4个通道。注入组的转换会打断规.原创 2020-09-17 18:46:02 · 3010 阅读 · 0 评论 -
Stm32F103R6之DMA
目录概述DMA主要特性配置步骤使用DMA时需要注意的问题概述直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。每个DMA通道专门用来管理来自于一个或多个外设对存储器访问的请求,还有一个仲裁器来协调各个DMA请求的优先权。DMA主要特性支持循环的缓冲器管理 。 每个通道都有3个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这3个事件标志逻辑或原创 2020-09-17 18:41:26 · 819 阅读 · 0 评论 -
Stm32F103R6之中断和事件
目录概述外部中断/事件控制器(EXTI)概述中断和事件很类似,主要的区别有:中断发生后有一个中断响应函数来处理,需要CPU的介入; 事件发生后没有相应的中断响应函数,不一定需要CPU介入; 事件一般作为其他硬件模块工作的触发源,比如触发ADC转换、DMA传输等等。Stm32F103有:68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线); 16个可编程的优先等级(使用了4位二进制中断优先级)。外部中断/事件控制器(EXTI)每个输入线可以独立地配置输入类型(原创 2020-09-17 18:39:39 · 774 阅读 · 0 评论 -
stm32F103R6之GPIO和功能复用
目录概述通用I/O(GPIO)复用功能(AF)概述Stm32F103的GPIO端口的每个位可以由软件分别配置成多种模式:输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 推挽式输出 推挽式复用功能 开漏复用功能图 1I/O端口位的基本结构通用I/O(GPIO)复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。复位后,JTAG引脚被置于输入上拉或下拉模式:l PA15:JTDI置于上拉模式l PA14:JTCK置于下拉模式l原创 2020-09-17 18:38:28 · 3886 阅读 · 0 评论 -
stm32F103R6之时钟树
目录概述HSE时钟HSI时钟PLLLSE时钟LSI时钟系统时钟(SYSCLK)选择时钟安全系统(CSS)时钟输出概述三种不同的时钟源可被用来驱动系统时钟(SYSCLK):HSI(内部高速)振荡器时钟、HSE(外部高速)振荡器时钟、PLL(锁相环)时钟。另外:40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。当不原创 2020-09-17 18:23:44 · 1427 阅读 · 0 评论 -
stm32F103R6之复位
目录概述系统复位电源复位备份域复位概述Stm32F103支持三种复位形式,分别是:系统复位、电源复位、备份域复位。系统复位除了时钟控制寄存器的RCC_CSR寄存器中的复位标志位和备份域中的寄存器外,系统复位将所有寄存器置于它们的复位状态。当发生以下任一事件时,将产生一个系统复位:1. NRST引脚上的低电平(外部复位)2. 窗口看门狗计数终止(WWDG复位)3. 独立看门狗计数终止(IWDG复位)4. 软件复位(SW复位)5. 低功耗管理复位可通过原创 2020-09-17 18:22:03 · 4552 阅读 · 0 评论 -
stm32F103R6之BKP(备份寄存器)
目录概述侵入检测RTC校准概述Stm32F103有42个16位的备份寄存器。他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问。通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟 电源控制寄存器(PWR_CR)的DBP位来使能原创 2020-09-17 18:20:31 · 3067 阅读 · 0 评论 -
stm32F103R6之RTC校准
目录概述RTC校准基本原理概述由于外部环境温度的改变,驱动RTC的晶振频率会发生变化,因此RTC就没有预期那么准确了。Stm32F103附带有数字时钟校准电路,可以适应变化的环境,主要用于补偿晶振由于环境的变化。RTC校准基本原理石英晶体振荡器 对温度十分敏感,下图展示了一个32.768HZ晶体的频率准确度(acc)、温度(T)和曲率(K)之间的关系。图 1晶体准确性在一些应用中,通过调节晶体的负载电容来调节精度,这一方法虽然十分有效,但是也存在缺点:需要增加一个外部原创 2020-09-17 18:18:25 · 2099 阅读 · 0 评论 -
stm32F103R6之低功耗模式
目录概述睡眠模式停止模式待机模式概述在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32F103有三种低功耗模式:睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行) 停止模式(所有的时钟都已停止) 待机模式(1.8V电源关闭)此外,在运行模式下原创 2020-09-14 19:22:03 · 1762 阅读 · 0 评论 -
stm32F103R6之电源管理
目录电源设计电池备份区域可编程电压监测器(PVD)电源设计设计过stm3f103周边电路的朋友应该知道,stm32f103芯片上有多组电源:主电源VDD 通过Vbat脚为实时时钟(RTC)和备份寄存器供电的备电源 独立的AD转换器供电和参考电源 通过内部电调节器为CPU核心、内存、内置数字外设供电的1.8V图 1电源框图电池备份区域使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。电路设计时需要注意:在VDD上升原创 2020-09-14 19:20:46 · 2636 阅读 · 0 评论 -
stm32F103R6之CRC
原理简介CRC计算单元功能描述寄存器描述原理简介请查看链接CRC计算单元Stm32F103的CRC计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果。CRC计算虽然可以用纯软件实现,但是数据量很大时速度会较慢,使用stm32硬件计算只要4个AHB时钟周期(HCLK) 就可以出结果。功能描述计算单元含有1个32位数据寄存器:² 对该寄存器进行写操作时,作为输入寄存器,可以输入要进行CRC计算的新数据。² 对该寄存器进行读操作时,返回上一次CRC计算原创 2020-09-14 19:17:13 · 858 阅读 · 0 评论 -
循环冗余校验(CRC)原理
原理简介举个例子原理简介CRC通过增加若干冗余位数据来于核实数据传输或者数据存储的正确性和完整性。假如要传输的有效数据D有k位,冗余数据F共n-k位,那么整个传输帧T:图 1校验码格式数据发送方和接受方要实现预定一个(n-k+1)位的整数P,并且约定T和F满足:TmodP==0……(1)其中mod是求余运算,加上图1显示的关系有:T=(2n−k)*D+F……(2)基于上述要求,实际应用时,发送方和接收方按以下方式通信:1. 发送方和接收方在通信前,约定好...原创 2020-09-14 19:12:52 · 1586 阅读 · 0 评论 -
STM32F103R6之存储器及启动配置
存储器组织嵌入式SRAM位段嵌入式闪存启动配置内嵌的自举程序存储器组织Stm32F103的程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内,数据以小端格式存放在存储器中。嵌入式SRAMSTM32F10xxx内置64K字节的静态SRAM。它可以以字节、半字(16位)或全字(32位)访问。SRAM的起始地址是0x2000 0000。位段Cortex™-M3存储器映像包括两个位段(bit-band)区。这两个位段区将别名...原创 2020-09-14 19:11:46 · 2446 阅读 · 0 评论 -
STM32F103R6之系统架构
主系统由四个驱动单元和四个被动单元构成。四个驱动单元:M3内核的Dcode总线(D-bus) 系统总线 通用DMA1 通用DMA2四个被动单元:内部SRAM 内部闪存存储器(flash) FSMC AHB到APB的桥图 1系统结构ICode总线将Cortex™-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。 DCode总线将Cortex™-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。 系统总线连接Cortex™-.原创 2020-09-14 19:09:45 · 4801 阅读 · 0 评论 -
stm32的USB(二)Fatfs在stm32上的移植
前言相信大家不会对FAT文件系统感到陌生,在Windows上就能够直接操作FAT文件,Fatfs是一个完全免费和开源的文件系统模块,它支持FATl2、FATl6 和FAT32,支持多个存储媒介,有独立的缓冲区,可以对多个文件进行读/写,在嵌入式系统中得到广泛应用。Fatfs有Fatfs和FatFs/Tiny两个版本,FatFs/Tiny占用RAM较小,但是以更慢的读写速度和更少的API函数原创 2016-11-18 11:09:17 · 5747 阅读 · 0 评论 -
stm32的USB(一) 主机模式下对MSC(大容量存储器)的识别
背景:USB中文名称是通用串行总线,因其具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点而得到广泛应用。但是USB协议非常的复杂,完整的协议就有厚厚的一本,还好ST公司很体贴的提供一整套USB库以及例程,用户只需对其例程稍微修改移植到自己的项目就好。Stm32的MCU有三种带USB功能的IP:•USB IP 可作为全速或低速的USB设备存在于STM32F102、STM原创 2016-11-17 14:04:56 · 19253 阅读 · 3 评论