STMcubeIDE学习汇总(五)----知识覆盖

本文介绍了ARM处理器的历史和特点,着重讲解了STM32系列微控制器,包括不同内核的分类及应用。STM32F103系列的特性,如内核和存储器配置、低功耗模式、DMA控制器的工作原理以及IO口、定时器、I2C和UART接口的使用。此外,还涉及SPI、CAN和USB接口的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.何为ARM

2.STM32

3.重要功能

     内核和储存器

stm32f103x8   stm32f103xB

 时钟,复位,电源管理

低功耗

DMA

IO口

定时器

 I2C和UART接口

SPI,CAN,USB


1.何为ARM

       ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

        精简指令集计算机(RISC:Reduced Instruction Set Computer RISC) [3]  是一种执行较少类型计算机指令微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。纽约约克镇IBM研究中心的John Cocke证明,计算机中约20%的指令承担了80%的工作,于1974年,他提出RISC的概念。许多当前的微芯片都使用RISC概念。

      ARM内核,有很多分类,分别有不同的功能所以有不同的应用。arm 内核ARM开发板,即以英国ARM(AdvancedRISCMachines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品 [1]。. ARM开发板根据ARM内核可以分为ARM7、ARM9、ARM11、Cortex-M系列、Cortex-R系列、Cortex-A系列。. 其中Cortex-M系列又可分为Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4;Cortex-R系列分为Cortex-R4、Cortex-R5、Cortex-R7;Cortex-A ...

2.STM32

STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核.按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7) 

ST公司官网,hettp://www.st.com 我们可以在这里查找我们所需要功能的芯片,芯片的数据手册在这里也可以免费的下载。 

 这是进去之后的界面,点左上角产品里的微控制器 (我这里是浏览器给翻译成中文了)

 进去之后可以看到如上界面 我们就可以选择我们想了解到 对应的芯片类型 

我们选择STM32系列里面F103

这有相关对应芯片性能的介绍,比如说我们选择STMF103VC 

点进去,我们可以看到,在这里面可以下载数据手册,甚至购买芯片等

3.重要功能

                                 数据手册已上传至我的资源里面 免费下载

                                 基于数据手册,介绍其重要功能

                                                           (以STM32F103为例,其余也同理)

     内核和储存器

stm32f103x8   stm32f103xB

内核:ARM 32位的Cortex TM-M3 CPU

中等容量增强型,32位基于ARM核心的带64k或128k字节闪存的微控制器 USB,CAN,7个定时器,2个ADC,9个通信接口。

1.最高75MHz工作频率,在存储器的0等待周期访问时可达1.25DMiPs(Dhrystone2.1)
2.单周期乘法和硬件除法(就是支持乘法和除法)

1.从64k或128k字节的闪存程序存储器(FLASH)

2.高达20k字节的SRAM

SRAM与FLASH

特性对比

 因为目前没有又快又不丢失的存储器,所以我们利用上面两个存储器配合使用,类如电脑硬盘等

先在FLASH里读出到SRAM,然后运行,最后保存到FLASH中防止丢失。

 时钟,复位,电源管理

电源管理
-2.0 ~ 3.6V 供电和I/O引脚,引脚带FT标的兼容5V。
复位
上电/断电复位(POR/PDR),可编程电压监测器(PVD)(设定一个电压值,低于此电压时,单片机复位,保证系统工作稳定)。
时钟
如果没有时钟,单片机就不能工作。

4~16MHz 晶体振荡器(外部接的晶振)。
内嵌经出厂调校的8MHz的RC振荡器 - 内部电容电阻产生振荡器,ARM内核提供的系统时钟。
内嵌带校准的40KHz的RC振荡器 - 是给RTC使用的。
产生CPU时钟的PPL- 锁相环/锁相回路,用来统一整合时钟信号,使高频器件正常工作。
带校准功能的32KHzRTC振荡器。

### STM32与LVGL 9.1集成指南 对于希望在STM32微控制器上部署图形用户界面的应用开发者而言,采用嵌入式GUI库如LVGL是一个理想的选择。为了成功配置并运行基于STM32LVGL 9.1版本的项目,需遵循一系列特定的操作流程。 #### 配置环境准备 确保开发环境中已安装必要的工具链支持包,包括但不限于STMCubeIDE或VSCode搭配CMake插件用于构建工程[^3]。此外,还需获取最新的HAL驱动程序以及CMSIS核心文件来支持目标板卡。 #### 初始化LVGL框架 完成上述准备工作后,在项目的`main.c`或其他适当位置加入如下初始化语句: ```c lv_init(); lv_port_disp_init(); // 显示接口初始化 lv_port_indev_init(); // 输入设备(触摸屏)初始化 ``` 这段代码负责启动LVGL引擎,并连接至指定的显示模块与输入装置,从而为后续UI绘制奠定基础[^2]。 #### 自定义配置选项调整 针对不同分辨率屏幕的需求,编辑位于`lvgl-9.1.0`目录内的`lv_conf.h`头文件,激活其中被注释掉的部分并通过宏定义设置显示器的具体参数: ```c #if 1 /*Set it to "1" to enable content*/ ... #define MY_DISP_HOR_RES 320 #define MY_DISP_VER_RES 240 ... #endif ``` 此操作允许应用程序根据实际使用的LCD面板特性自适应调整布局。 #### 获取官方资源链接 访问GitHub上的[Simulator project for LVGL embedded GUI Library][simulator-project-link]可以找到适用于PC端仿真的源码实例,这对于前期测试非常有帮助。而关于更详细的移植指导文档,则建议查阅由社区成员维护的相关博客文章或是论坛帖子获得最新资讯[^1]。 [simulator-project-link]: https://github.com/lvgl/simulator
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辽G.默语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值