STM32硬件结构学习

发布者:cxx7848653最新更新时间:2021-06-17 来源: eefocus关键字:STM32  硬件结构 手机看文章 扫描二维码
随时随地手机看文章

stm32硬件学习流水帐----电源


分类:


1.工作电源 2.备份域电源 3.adc供电参考电源


工作电源2-3.6v


备份域电源用于RTC时钟模块和备份域寄存器保存


adc供电参考电源:为提高精度ADC具有单独的工作电源和参考电源基准


注意100脚以上的stm32才有ADC参考电源基准,100脚以下ADC参考电源基准内部连接到ADC供电电源


除此外还有内部1.8,由芯片内部调节器提供.


stm32硬件学习流水帐----时钟


stm32有多个时钟源:


1.外部高速时钟HSE,可由外部输入时钟信号或者外接晶体构成振荡器构成.


2.内部高速时钟SHI,频率为8M,精度1%


3.外部低速时钟源LSE,接32768Hz晶体,为RTC提供高精度时钟


4.内部低速时钟LSI 32k Hz,为看门狗单元和自动唤醒单元提供时钟


其中HSE,HSI能直接作为系统时钟,或者通过PLL倍频提供系统工作时钟.


注意:


HSI用作PLL输入,PLL能输出的最大时钟只能为64MHz


stm32硬件学习流水帐----系统存储结构


stm32的程序存储器,数据存储器,寄存器和IO端口被组织到一个4GB线性空间.


可寻址的存储空间被分为8个512M主块.


stm32存储编码格式为小端编码格式.


嵌入式SRAM可以字,半字,字节方式访问,起始地址为0x2000000.


stm32的位段是一种别名机制,即将用户数据存储空间的某字节某位映射到0x22000000开始的别名空间.


例如0x20000030中的第2为映射为:


0x22000000+0x30*32+2 = 0x22000602


对0x22000602的写即为对0x20000030的第位读修改写


stm32的flash存储器物理上分成主块和信息块,主块16K*64bits,每个主块分成128个1KB大小的页面.


信息快大小258*64bits,每个信息块分成2页+16B,每页大小2KB


stm32硬件学习流水帐----调试接口


stm32支持jtag接口和swd串行调试接口两种调试口,


其中swd调试口只占用swdio和swclk两个口线,


相比jtag可以有更多的引脚可用,


并且可以使用较小尺寸的调试插座.


JILINK V7支持SWD接口.


stm32上电默认的是jtag接口.


当使用swd接口,多余的jtag接口IO端口需要重新映射为通用IO端口


stm32硬件学习流水帐----复位


stm32复位分为:系统复位,电源复位,备份域复位


系统复位复位除了时钟控制寄存器的复位标志和备份域寄存器以外的所有寄存器.


系统复位由NRST引脚低电平,窗口看门狗和独立看门狗以及软件复位和低功耗管理复位等原因引起.


电源复位由上电/掉电复位(POR和PDR)两种和待机模式退出引起


电源复位将复位除了备份域寄存器以外的所有寄存器.


备份域复位由软件备份域复位和电源备份域复位两种原因引起.


电源备份域复位是指VDD和Vbat都掉电的时候,其中一个突然上电引起的复位


复位向量位置为0x00000004


stm32硬件学习流水帐----主要电气特性


stm32供电电压-0.3---4.0v.


stm32的部分引脚具有5v容忍特性,其电压输入范围为vss-0.3到5.5v


其他引脚的供电电压范围是:vss-0.3v到vdd+0.3v


flash等待周期:


0-24MHz 0等待状态


24-48MHz 1等待状态


48MHz以上 2个等待状态


flash中运行代码,72MHz的时候所有外设使能时候的电流为50.3mA,所有外设禁止的时候电流为32.9mA.


VDD脚总电流IVDD最大150mA,


VSS脚总电流IVSS最大150mA,


IO引脚最大电流25mA和-25mA.


flash 擦写次数最小 1万次


flash数据/指令保存年限最小 20年


弱上拉/弱下拉等效电阻40k欧姆.


GPIOs引脚入出典型电流值为8mA.


stm32硬件学习流水帐----GPIO


stm32的GPIO可以由软件配置成:


输入浮空,输入上拉,输入下拉,


模拟输入


开漏输出,推挽输出,


开漏复用,推挽复用.


stm32复位后,IO端口处于输入浮空状态.


JTAG引脚复位以后,处于上拉或者下拉状态.


所有IO端口都具有外部中断能力,端口必须配置成输入模式,才能使用外部中断功能.


IO端口复用功能配置:


对于复用功能输入,端口可以配置成任意输入模式或者复用功能输出模式.


对于复用功能输出,端口必须配置成复用功能输出


对于双向复用功能,端口必须配置成复用功能输出


stm32的部分IO端口的复用功能可以重新映射成另外的复用功能.


stm32具有GPIO锁定机制,即锁定GPIO配置,下次复位前不能再修改.


当LSE振荡器关闭时,OSC32_IN和OSC32_OUT可以用作通用IO PC14和PC15.


当进入待机模式或者备份域由Vbat供电,PC14,PC15功能丢失,该两个IO口线设置为模拟输入功能.


OSC_IN和OSC_OUT可以重新映射为GPIO PD0,PD1.


注意PD0,PD1用于输出地时候仅能用于50MHz输出模式.


注意:PC13,PC14,PC15只能用于2MHz的输出模式,,最多只能带30pf的负载,并且同时只能使用一个引脚!


关键字:STM32  硬件结构 引用地址:STM32硬件结构学习

上一篇:关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
下一篇:STM32F107VC的嵌入式远程监控终端设计

推荐阅读最新更新时间:2024-11-12 11:43

使用Ulink2的JTAG与SWD 调试stm32 区别
一、硬件连接 我调试stm32F407使用的ULINK2,Ulink2内部实物图如下。 1.1 JTAG interface 标准20pin JTAG引脚中,JTAG调试只使用8pin,定义如下: 1)NTRST ---------------Test ReSeT/ pin — Use 100K Ohm pull-up resistor to VCC. 必须有该引脚 2)TDI -----------------Test Data In pin — Use 100K Ohm pull-up resistor to VCC.数据输入 必须有该引脚 3)TMS/SW
[单片机]
使用Ulink2的JTAG与SWD 调试<font color='red'>stm32</font> 区别
STM32实现DMA读取ADC数据
学习了DMA写了一个用DMA读取ADC数据的程序,记录下整个过程和一点心得 DMA配置详细说明 (MDK的汉字2复制过来就是乱码,我重新打了一遍注释,晕~) //DMA1各通道配置 //外设- 存储器/16位数据宽度 //DMA_CHx:DMA通道CHx //cpar:外设地址 //cmar:存储器地址 //cndtr:数据传输量(因为我是一个16位的数据,所以是一) void MYDMA_Config(DMA_Channel_TypeDef* DMA_CHx,u32 cpar,u32 cmar,u16 cndtr) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE
[单片机]
STM32实例-通过操作寄存器实现流水灯效果
我们需要在外部定义一个SystemInit 函数设置 STM32 的时钟;STM32 上电后,会执行 SystemInit 函数,最后执行我们 C 语言中的 main 函数。 下面就开始使用寄存器来操作 STM32 使 PC0 输出一个低电平。要操作 STM32寄存器,我们就需要使用 C 语言对其封装,这部分程序我们都放在 stm32f10x.h中。具体代码如下: #define PERIPH_BASE ((unsigned int)0x40000000) #define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000) #define GPIOC_BASE (APB2PERIPH_BASE +
[单片机]
STM32的GPIO设置
最近刚开始学习STM32,所以从最基本的GPIO开始学起;首先看看STM32的datasheet上对GPIO口的简单介绍: 每个GPI/O 端口有两个32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32 位置位/复位寄存器(GPIOx_BSRR),一个16 位复位寄存器(GPIOx_BRR)和一个32 位锁定寄存器(GPIOx_LCKR)。 GPIO 端口的每个位可以由软件分别配置成多种模式。每个I/O 端口位可以自由编程,然而I/0 端口寄存器必须按32 位字被访问(不允许半字或字节访问)。GPIOx_BSRR 和GPIOx_BRR 寄存器允许对
[单片机]
STM32之旅4——USART
串口也是用的比较多的,在STM32CubeMX中生成代码后,需要添加一些代码才可以用。 drv_usart.h: #ifndef __DRV_USART_H #define __DRV_USART_H #define USART1_MAX_LEN 64 //接收区长度 #define USART1_BUFF_CACHE_LEN 1 //接收缓冲区长度 extern uint16_t g_usart1_sta; //接收状态 ,最高位为接收完成标志 extern uint8_t g_usart1_buff ; //接收buff extern uint8_t g_usart1_buff_cache ; //接
[单片机]
STM32 FSMC接口驱动TFT-LCD设计
0 引言 随着电子产品的不断更新,各种显示界面的开发越来越多,由于TFT彩屏的性价比高,因而被广泛用在各种电子设备上作为显示屏。目前驱动TFT彩屏的方案有很多,可以用底端单片机驱动一个终端类型的液晶模组,这种模组价格比较贵,当然用起来还是很方便的。 只要单片机通过串口或并行口向TFT发送几个字节的命令,就能在屏幕上显示你需要的效果。本设计利用STM32 的FSMC 总线直接驱动TFT 数字彩屏。这种方案对相应的寄存器进行配置后就可以自动向TFT数字彩屏发送数据,无需CPU参与,让CPU有足够时间来处理其他程序。 1 STM32 简介 STM32 是基于ARM 内核Cortex-M3 的32 位微控制器系列。Cortex-M3
[单片机]
<font color='red'>STM32</font> FSMC接口驱动TFT-LCD设计
STM32的SPI采用DMA方式传输测试
环境: 主机:WIN7 开发环境:MDK4.23 MCU:STM32F103CBT6 说明: 参考链接: http://www.openedv.com/posts/list/3159.htm SPI传输数据分为连续传输和非连续传输. 连续传输时序图: 非连续传输时序图: 非连续传输模式可以参考上篇文章: http://blog.csdn.net/jdh99/article/details/7598573 官方pdf关于连续和非连续传输的说明: 当在主模式下发送数据时,如果软件足够快,能够在检测到每次TXE的上升沿(或TXE中断),并立即在正在进行的传输结束之前写入SPI_DR寄存器,则能够实现连续的通信;此时,
[单片机]
设置stm32系统各部分时钟
函数如下: /************************************************************************** * 函数名 : RccInitialisation * 函数描述 : 设置系统各部分时钟 * 输入参数 : 无 * 输出结果 : 无 * 返回值 : 无 **************************************************************************/ void RccInitialisation(void) { /* 定义枚举类型变量 HSEStartUpStatus */ ErrorStatus H
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved