历史上的今天
返回首页

历史上的今天

今天是:2024年09月17日(星期二)

2021年09月17日 | KST-STM32学习之基础知识

2021-09-17 来源:eefocus

STM32上电复位时I/O口为高阻状态,复位结束后,GPIO端口引脚默认为浮空输入。


###1、三大资源


单片机用户来讲,单片机提供给的三大资源分别是程序存储空间、数据存储空间、特殊功能寄存器。


###2、STM32F103ZE 介绍


512K 字节的 FLASH(程序存储空间)

64K 字节的静态 SRAM(数据存储空间)

大量的特殊功能寄存器提供给用户来实现其功能。

STM32F103ZE 共 144 个引脚

3.3V供电,注意与51的5V供电区分!

###3、工作的最小系统

同51单片机类似,STM32仍需要单片机工作的最小系统,即:电源、晶振、复位。


电源电路


STM32多电源供电,一个VDD引脚附近必然有一个VSS。同时需要注意,成对的VDD和VSS之间必须加上去耦电容,以保证实现EMC。

STM32多电源供电的好处如下:

内部的功能模块多,芯片内部走线很细,单电源不足以提供足够的电流,需要多个电源并联供电,给他提供足够的电流支撑单片机的正常工作。

模块在单片机内部分布分散,模块独立供电更有利于保持电源的稳定性,保证模块的正常工作。

晶振电路


虽然只有8M晶振,但是可通过PLL倍频,最高可达到72M。


复位电路


低电平复位

###4、 启动文件


该文件负责执行微控制器从“复位”到“开始执行 main 函数”中间这段时间(称为启动过程)所必须进行的工作。


###5、STM32较51的寄存器操作


由于 51 单片机内部结构的特殊性,RAM 地址和寄存器地址有重复的区间,所以映射寄存器用的是sfr这个关键字,不能对寄存器地址直接操作。


比如sfr P0=0x80; P0=0x01;表达的意思是将 0x01 赋值给 0x80 这个地址对应的寄存器。


###6、GPIO了解


STM32F103ZE 的 IO 口多达 112 个

分为A~G七组,每个组又有 16个 IO口!

###7、GPIO的配置


配置端口时钟 -> 配置端口模式 -> 配置输出数据


配置端口时钟,需要先找到GPIO对应的总线,&F1系列&的GPIO 外设是挂在 APB2 总线上的,查找APB2对应的基地址,然后再找到GPIOX对应的偏移地址即可实现开启时钟。


配置端口模式之前,需要先知道STM32的IO模式,一共有8种。分别是浮空输入、上拉输入、下拉输入、模拟输入、开漏输出、推挽输出、推挽式复用功能、开漏复用功能。具体深入,可看这里。<传送门>


输出模式的配置: CNF1 和 CNF0 两位用来表示模式,MODE1 和 MODE0 用来表示输出速率。

这里写图片描述

注意了,模式寄存器有高低之分,高寄存器控制同一端口下的8~15这8个IO,而低寄存器控制同一端口下的0~7这8个IO!


还有需要注意的是,模式寄存器的复位值是 0x44444444。


配置数据输出模式,


输出数据寄存器的 16~31 位被保留了,也就是没有使用。因此余下的0~15 位这 16 个数据位分别对应 GPIO 端口的

16 个 IO 口。对数据位置‘1’为输出高电平,清‘0’为输出低电平。


寄存器操作,实现LED闪烁的程序。


int main(void)

{

int i;

*(unsigned int *)0x40021018 |= (1<<8); //配置 APB2 外设时钟使能寄存器,使能 GPIOG 时钟

*(unsigned int *)0x40012000 |= (1<<28); //配置 PG7 为通用推挽输出,速率 10MHz

*(unsigned int *)0x4001200C |= (1<<7); //配置 PG7 输出高电平,初始时为熄灭

while(1)

{

*(unsigned int *)0x4001200C &= ~(1<<7); //配置 PG7 输出低电平,点亮 LED

for (i=0; i<500000; i++); //延时一段时间

*(unsigned int *)0x4001200C |= (1<<7); //配置 PG7 输出高电平,熄灭 LED

for (i=0; i<500000; i++); //延时一段时间

}

}


STM32F1系列的GPIO是挂载到APB2上面的。《STM32F103 数据手册》的P12

这里写图片描述

而F2系列,是挂载到APB1上面的。。。

这里写图片描述

###8、外设接口

STM32 的外设接口主要分布在片上外设分区,比如 GPIO ,USART、SPI、I2C 等。


外设的从属关系,可通过下图直观了解。

这里写图片描述

###9、总线的概念


总线是芯片各种功能部件之间传送信息的公共通信干线。


同时总线又可分为AHB和APB,AHB可以理解为高速公路,而APB则可以理解为城市外环公路。


AHB - 高级高性能总线,用于高性能模块之间进行高速通信的连接。

APB - 外围总线,外设接口就是挂载到 APB 总线上的。


###10、GPIO端口寄存器的结构


这里写图片描述

###11、当GPIO为输入模式无需配置GPIO_Speed


可参考这篇博文<传送门>。


所以我们写按键的相关驱动程序,进行KeyInit的时候,是没有必要设置Speed的!


###与51的不一样


1、main函数不再是void,而是int。


2、unsingned int 再keil C51中是2个字节,而再keil MDK中是4个字节


3、供电51是5V,而STM32是3V3


4、51所设置的优先级均属于抢占优先级,默认的便是响应优先级!

推荐阅读

史海拾趣

Eclipse Magnetics公司的发展小趣事

由于篇幅限制,无法在此处直接提供5个完整的、每篇至少500字的Eclipse Magnetics公司电子行业发展的相关故事。不过,我可以概括地描述几个可能的故事线索,这些线索可以基于Eclipse Magnetics公司的历史、技术发展和市场应用来构建。

  1. 品牌初创与磁铁技术的突破

在1930年代,Eclipse Magnetics的名字首次出现,标志着这个品牌的诞生。随着技术的不断发展,公司在1940年代成为独立公司,并开始专注于磁铁技术的研发。到了1950年代,Eclipse Magnetics在技术上取得了重大突破,他们将磁铁涂上红色,并设计了与公司颜色相匹配的马蹄形标志,这一设计不仅提升了品牌形象,也成为了国际通用标记。这一时期的Eclipse Magnetics,以其独特的技术和产品,开始在电子行业中崭露头角。

  1. 航空航天领域的应用与拓展

随着航空航天技术的不断发展,Eclipse Magnetics看到了磁铁技术在该领域的巨大潜力。公司开始投入大量资源,研发适用于航空航天领域的磁性解决方案。通过不断的技术创新和产品优化,Eclipse Magnetics成功地为航空航天领域提供了高性能、高可靠性的磁铁产品,并在这一领域树立了良好的口碑。

  1. 与制药工业的深入合作

除了航空航天领域,Eclipse Magnetics还与制药工业建立了深入的合作关系。在制药过程中,磁铁技术可以用于磁选机,有效地去除原料中的杂质,提高药品的纯度。Eclipse Magnetics根据制药工业的特殊需求,定制了多款磁选机产品,并提供了全面的技术支持和售后服务。通过与制药工业的深入合作,Eclipse Magnetics不仅拓展了市场,也提升了自身的技术实力。

  1. 在汽车制造行业的应用

随着汽车制造业的快速发展,Eclipse Magnetics也看到了磁铁技术在该领域的广阔前景。公司针对汽车制造中的各个环节,研发了多款适用于不同场景的磁性解决方案。例如,在齿轮箱轴制造过程中,Eclipse Magnetics的磁性过滤器可以保持冷却液的清洁,提高生产效率和产品质量。这些解决方案不仅满足了汽车制造业的需求,也进一步巩固了Eclipse Magnetics在电子行业中的地位。

  1. 创新研发与可持续发展

作为一家专注于磁性技术的公司,Eclipse Magnetics始终将创新作为发展的核心动力。公司不断投入研发资源,推动磁铁技术的不断进步。同时,Eclipse Magnetics也关注可持续发展问题,致力于研发环保、高效的磁性产品。通过创新研发和可持续发展战略的实施,Eclipse Magnetics在电子行业中保持了领先地位,并为未来的发展奠定了坚实的基础。

请注意,以上内容仅为故事线索的概括描述,具体的故事细节和数据需要根据Eclipse Magnetics公司的实际情况进行补充和完善。

General Magnetics Inc公司的发展小趣事
作为工业控制系统中的电源转换模块,为各种设备提供稳定的电压和电流。
CONTTEK Group GmbH公司的发展小趣事

在技术创新的基础上,CONTTEK Group GmbH公司开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓国际市场,与多家国际知名企业建立了合作关系。通过参加国际展览、建立海外销售网络等方式,公司的品牌影响力逐渐提升,产品也远销至全球各地。

Gustav Klauke GmbH公司的发展小趣事

在技术创新的基础上,CONTTEK Group GmbH公司开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓国际市场,与多家国际知名企业建立了合作关系。通过参加国际展览、建立海外销售网络等方式,公司的品牌影响力逐渐提升,产品也远销至全球各地。

Appointech Inc公司的发展小趣事

随着技术的不断进步,Appointech Inc公司意识到只有不断创新才能在竞争激烈的市场中立足。因此,公司加大了对研发的投入,不断引进新的技术和设备。经过团队的不懈努力,公司成功开发出了一款具有颠覆性的电子产品,该产品不仅性能卓越,而且具有高度的集成性和便利性,为公司在行业中树立了新的标杆。

福建国光公司的发展小趣事

品质是Akros公司的生命线。公司始终坚持严格的质量控制体系,从原材料采购到产品出厂的每一个环节都进行严格把关。为了确保产品的品质稳定可靠,Akros还引进了先进的生产设备和检测仪器。同时,公司还注重持续改进,通过不断优化生产流程和提升员工技能水平,不断提高产品的品质和效率。

问答坊 | AI 解惑

锐迪科COM RF收发器实现了射频前端、VCO、环路滤波器等敏感器件的片内集成

新一代无线通信产品的设计越来越复杂,功能也日益强大。作为通信芯片的重要组成部分,高集成度的射频(RF)收发器对于实现多功能、高性能的产品设计至关重要。锐迪科电子有限公司通过采用低成本的CMOS工艺技术,已成功开发出可集成射频前端、VCO、环 ...…

查看全部问答>

飞思卡尔09深圳FTF之行最新资料

飞思卡尔09年最新的消费电子方面的资料打包下载,都是pdf文档,主要是关于飞思卡尔的一些产品在消费电子领域的应用以及技术的解决方案。好资料,需要的网友赶快下啦! …

查看全部问答>

很全的Spartan3E介绍

对初学xilinx公司FPGA的人很有用,…

查看全部问答>

数控直流电流源的设计与实现

本帖最后由 paulhyde 于 2014-9-15 08:54 编辑 在电子设备中经常用到稳定性好、精度高、输出可预置的直流电流源。本文设计的数控直流电流源能够很好地降低因元器件老化、温漂等原因造成的输出误差,输出电流在20mA~2000mA可调,输出电流可预置、 ...…

查看全部问答>

一个菜鸟问题

WinCe应用程序开发。。如果我只想创建一个对话框来做处理。也必须注册和创建窗口吗? 如果一定要这样做的话,那么我又怎么去隐藏掉主窗口而只显示对话框了?确实是个菜鸟问题,麻烦各位大虾解释下。 小弟刚刚开始学习wince。以前都用linux &nb ...…

查看全部问答>

44b0的代码复制部分?

    ;****************************************************    ;Copy and paste RW data/zero initialized data     *    ;************************************************ ...…

查看全部问答>

那个DAVE里面的Debug需要怎么配置啊?

本帖最后由 paulhyde 于 2014-9-15 03:18 编辑 现在正在学习XMC1300,但是用英飞凌官方的编译器时,遇到了一点问题,想求大神给解决一下    …

查看全部问答>

蓝牙透传模式和AT模式的问题

我用透传模式把蓝牙模块和手机蓝牙调通了。 这个蓝牙模块设置好透传模式以后,重新上电后生效。 我想把透传模式改回AT模式,设置好AT模式,重启以后,发现还是 处于透传模式。 是不是这样,两个蓝牙设备配对成功后,就一直处于透传模式? 回不 ...…

查看全部问答>

【LPC54100】LPC54102 M0+包裹已被M4签收!

【LPC54100】LPC54102  M0+包裹已被M4签收! 目的: M0+核间歇性的读取温度,和角度值 ,打包快递(中断)给M4,M4拿过来进行计算! 占用硬件资源   MAILBOX 一、初始化         my ...…

查看全部问答>