STM32是ST(意法半导体)公司推出的基于ARM内核Cortex-M3的32位微控制器系列。Cortex-M3内核是为低功耗和价格敏感的应用而专门设计的,具有突出的能效比和处理速度。通过采用Thumb-2高密度指令集,Cortex-M3内核降低了系统存储要求,同时快速的中断处理能够满足控制领域的高实时性要求,使基于该内核设计的STM32系列微控制器能够以更优越的性价比,面向更广泛的应用领域。
GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的。
最近做的项目有这样一个需求:从FLASH读取数据后进行显示、发送、本地SD卡存储,显示部分是显示在串口屏上。这个需求乍一看其实还不难实现,但是如果要从FLASH中读取的数据量很大,远超过MCU的内部RAM容量怎么办?其实,可以分多次读取,但是一样的道理,就需要分多次发送数据给串口屏,这样多次读取+多次发送会造成总体时间的增大;另外一个解决办法就是扩展RAM,一次性读取大量数据到外部RAM,再发送给串口屏,这样能很大程度减小整体的耗时。
STM32:意法半导体在 2007 年 6 月 11 日发布的产品,32位单片机。
想来想去,也不知道更新什么内容比较好了,犹豫了好久还是先跟大家讲讲液晶显示的配置吧,毕竟我觉得这个在很多项目中都非常实用,我个人是比较喜欢用一块TFT液晶来做显示终端的,大大的屏幕显示什么都方便,接到产品上面也显得特别高端,当然在考虑成本的情况下OLED和12864这些也是不错的选择。
近期项目中使用到了 IS64LV25616AL 的芯片,因此我要总结一下。 IS64LV25616AL这个是256*16的的,数据格式是16位,所以一共有512KB的空间,比较大了,stm32F103zet6才64KB内部SRAM。 可以使能byte enable,进行8位的访问,只要设置好了后,可以像片内的sram一样,随意访问的片外的sram,可以使用指针形式,可以at绝对地址定位的方式(ac5、ac6两种方式都可以,但是有所区别)。 stm32把片内外设的1GB的空间用于访问 nor/psram nand pcsd等,也就是书上说的地址映射,而且每个块都是4*64MB,共4个,既4*4*64MB。而且在nor/psram这个bank1的区域又分为4个小区域,这个小区域都有地址分配的,可以参考stm32的参考手册,而且每个小区域有相应的NE片选引脚,可以在stm32cubemx中进行设置,所以NE引脚是要结合硬件设计手动来选择的,而且也不能随便设置。其他的地址线、数据线、信号线等等,stm32cubemx会自动设置好,我们只要关心NE片选即可,十分方便。 另外stm32F103ze系列是有fsmc控制器的,引脚数目小于100的是没有的,其他高性能的stm32也是有的,具体就是要看芯片手册了。 把外部SRAM当做外部存储器来使用,上面的步骤就结束了的,而如果把外部SRAM当做内存使用,或者把部分堆栈空间放到外部SRAM,还需要做一些其他的设置,可以参考安富莱的教程和strongerhuang的博客。
1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备;
根据电路设计,外部使用8M,通过PLL到168M因此在sys_gd32f4xx.c文件中选择宏定义:
以精英板STM32F103为例。STM32是Cortex M3架构,拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成 本、低功耗等众多优势。
微处理器(MPU)通常代表一个功能强大的CPU,但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。中央处理器,或简称为处理器,英文缩写为CPU,即Central Processing Unit,是电子计算机的主要设备之一,其功能主要是解译计算机指令以及处理计算机软件中的数据。CPU为电子计算机设计提供了基本的数字计算特性。CPU、存储设备和输入/输出设备是现代微型电脑的三大核心部件。由集成电路制造的CPU通常称为微型处理器。从20世纪70年代中期开始,单芯片微型处理器几乎取代了所有其他类型的CPU,如今CPU这个术语几乎成为了所有微型处理器的代称。
什么是 STM32 STM32,从字面上来理解,ST 是意法半导体,M 是Microelectronics 的缩写,32 表示32 位,合起来理解,STM32 就是指 ST 公司开发的 32 位微控制器。STM32 是以32位为一个单位,同时能处理32位。比如51单片机就是一个同时处理8位的单片机。STM32中外设以4个位确定一个引脚功能。在如今的 32 位控制器当中,STM32 可以说是最璀璨的新星,大受工程师和市场的青睐,无芯能出其右。 CMSIS构架
原理讲解 芯片讲解 STM32F103芯片 我们看到的 STM32 芯片是已经封装好的成品,主要由内核和片上外设组成。若与电脑类比,内核与外设就如同电脑上的 CPU与主板、内存、显卡、硬盘的关系。 STM32F103采用的是 Cortex-M3内核,内核即 CPU,由 ARM公司设计。ARM公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI等都叫做片上外设。(采用野火官方的介绍)。
注意:DB1~DB8,DB10~DB17,总是按顺序连接MCU的D0~D15
Cortex M架构,典型就是STM32系列,比如STM32F103(Cortex M3)。
比如智能家居、智慧农业、工厂自动化这些,都可以使用STM32作为主控制器或者辅助控制器。
Libraries/STM32F10x_StdPeriph_Driver:与外设相关,有代表性的如下:
从“2.2 ARM与STM32的关系”可知,ARM公司负责设计内核,半导体芯片厂商拿到内核授权后,根据产品需求,添加各类组件,生产芯片售卖。如图 6.1.1 所示,为STM32的组成示意图,其中Cortex-M3内核、调试系统都是ARM公司设计,内部总线、外设、存储、时钟复位等都由ST公司开发。
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。
正常情况下,微处理器根据代码内容,按顺序执行指令。执行过程中,如果遇到其它紧急的事件需要处理,则先暂停当前任务,执行紧急事件,待紧急事件处理完后,再恢复到刚才暂停的地方继续执行。这个产生的紧急事件就叫做中断或异常,如图 10.1.1 所示。
现在开始慢慢从51单片机过渡到STM32的学习,因为之前学习过51单片机,所以环境的搭建特别快,一会就搞好了,而且发现STM32的烧录方式比51单片机要方便一点,不需要反复的冷启动,但是发现STM32建立工程模板太麻烦了。首先,分成基于固件库和基于寄存器(后面都会介绍),而且需要建立多个文件夹,在每个文件夹里面,还需要拷贝启动程序和许多的.C 和.H 文件等等,接下来,我就来好好介绍一下如何建立一个工程模板吧!(基于正点原子探索者F4)
目录 学习目标 成果展示 硬件知识 特点 功能框图 读时序 编辑写时序 FSMC驱动 寄存器 闪存片选控制寄存器 硬件 配置 代码 总结 ---- 学习目标 今天我们要学习的是有关外部SRAM实验,其实F4内部也是有一个192K字节的SRAM的,相比于51的512个字节来说,实在是好太多了,但是因为32可能需要跑一些需要大内存的场景的话可能就不够用了。所以我们就需要使用外部SRAM芯片来实现相应功能,这里我们使用的是IS62WV51216,容量为1M,这样就能满足大多数情况了
这是基于STM32设计的一个指针式电子钟+万年历小项目,采用3.5寸的LCD屏显示时钟,日历、温度、天气,支持触摸屏调整设置时间,设置闹钟,查看日历等等。整体项目主要是技术点就是LCD屏的图形绘制。比如: 时钟的时针绘制、分针、秒针、表盘、日历绘制等等。
NVIC:嵌套向量中断寄存器 Nested vectored interrupt controller (NVIC)。 NVIC:是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对 Cortex-M3 内核里面的 NVIC 进行裁剪,把不需要的部分去掉,所以说 STM32 的 NVIC 是 Cortex-M3 的 NVIC 的一个子集。
https://www.bilibili.com/video/BV1ss4y1f7MV
完整工程代码下载地址: https://download.csdn.net/download/xiaolong1126626497/20706318
我们通过IO和串口的软件开发,已经体验了嵌入式软件开发。不知道大家有没有疑惑,为什么软件能控制硬件?反正当年我学习51的时候,有这个疑惑。今天我们就暂停软件开发,分析单片机到底是如何软硬件结合的。并通过一个基本的程序,分析单片机程序的编译,运行。
代码风格: 寄存器风格,没有采用库函数,底层代码全部寄存器方式编写,运行效率高,注释清楚。
他是一个大三的学生,我看了他的简历,里面几乎没什么项目经验,对于企业来说这样的学生就好比一张白纸一样,当然,这样的学生很难拿到一份好的offer。
每当我们在入门之前(ARM是这样,DSP也一样),总会有很多疑问,会有很多顾虑。我们渴望知道学习STM32前景如何?需要啥基础?难不难?适不适合我?但是什么时候能心潮澎湃地、相当着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。
用过STm32的人都知道stm32有两种常用程序的方法,用串口和jlink。串口方法和51差不多不多说,用jlink时接口引脚太多导致接口很大,很占pcb的面积,在此我就针对这个问题清晰的讲述下jlink程序时jtag接口的简化方法!希望对大家有用。!
本身就是一个错误的问题。假如你会使用8051,会写C语言,那么STM32本身并不需要刻意地学习。
STM32 F2系列高性能MCU 基于ARM® Cortex™-M3的STM32 F2系列采用意法半导体先进的90 nm NVM制程制造而成,具有创新型自适应实时存储器加速器(ART加速器™)和多层总线矩阵, 实现了前所未有的高性价比。 该系列具有集成度高的特点:整合了1MB Flash存储器、128KBSRAM、以太网MAC、USB 2.0 HS OTG、照相机接口、硬件加密支持和外部存储器接口。 意法半导体的加速技术使这些MCU能够在主频为120 MHz 下实现高达150 DMIPS/398 CoreMark的性能,这相当于零等待状态执行,同时还能保持极低的动态电流消耗水平( 175 μA/MHz)。 带有DSP和FPU指令的STM32 F3系列混合信号MCU STM32 F3系列具有运行于72 MHz的32位ARM Cortex-M4内核(DSP、FPU)并集成多种模拟外设,从而降低应用成本并简化应用设计,它包括:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148876.html原文链接:https://javaforall.cn
STM32目前市面上使用比较广泛,资料多,接下来就介绍如何快速入门STM32,进行基础开发。
STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。
由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32
前面文章分享了很多关于STM32F103系列知识点、物联网相关的小项目,工程都采用的是寄存器方式编写;很多小伙伴接触STM32开始都采用库函数编程,不清楚如何使用寄存器方式开发STM32;这篇文章就讲一下如何新建寄存器风格的STM32工程,并介绍需要用到哪些官方系统文件等。
本连载笔记,记录了在STM32学习中对存储器的理解;描述了STM32存储器的结构划分,以及STM32存储器相关知识,能够获得对存储器的整体性认识;并能够顺利的付诸实践,达到真正的对存储器的认识+应用。
STM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单,并且100%开源免费。
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第35章 STM32F407的FSMC总线应用之驱动AD760
概括一下我没有摘录的部分,就是STM32有着各种优势,是从事嵌入式行业的朋友的好伙伴。以我作为一个电子系学生的经验,主要用到的就是F1和F4,后者较前者的区别就是多了一个FPU (Float Point Unit,浮点运算单元) 处理浮点数的速度也就会更快。
RCC,Reset and Clock Control(复位和时钟控制),在绝大部分MCU芯片中都包含复位和时钟控制模块,也是MCU重要的组成部分。
STM32自从上市到现在一直受到市场的热捧,超高的性价比使得STM32系列单片机不断刷新市场份额。作为一个电子编程爱好者,将STM32的各种特性和外设把玩一番,不失为一种业余乐趣,玩好了保不准还能变成正业~ 换几两酒钱。
接触RT-Thread也是一次偶然的机会,之前认识了一群网友,他们都是深圳的,然后我们这群网友本来打算去参加RTT的一个比赛,所以就约出来交流,我对RTT一脸懵逼,虽然后面我没有加入去参加比赛,但是那天听他们说完,我很兴奋,打算自己也来搞一下,移植一下这个系统,这个系统是开源的,所以你想怎么搞就怎么搞。
性能大致相似,并且从STM32迁移到 GD32 相对容易,因为 GD32 引脚兼容。
信息时代的校园, 离不开信息化的管理, 数字化"校园一卡通"建设是校园信息化建设的重要组成部分, 是为信息化校园提供信息采集的基础工程也是获取学校信息化服务的主要方式之一。
STM32的核心Cortex-M3处理器是一个标准化的微控制器结构,希望思考一下,何为标准化?简言之,Cortex-M3处理器拥有32位CPU,并行总线结构,嵌套中断向量控制单元,调试系统以及标准的存
领取专属 10元无门槛券
手把手带您无忧上云