蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

这篇具有很好参考价值的文章主要介绍了蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

首先学习了解一下蓝桥杯嵌入式CT117E-M4开发板的主控芯片STM32G431RBT6,本文仅为个人学习成果总结,如有错误,恳请指正。

一、芯片简介

蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

上图为STM32CubeMX选型界面,如图可以看出STM32G431RBT6具有以下特点和硬件集成。

  • 采用Cortex-M4 32位RISC核心架构,工作频率最高可达170Mhz。
  • 128kBytes的FLASH,32kBytes的SRAM。
  • 封装形式LQFP 64,引脚个数64pin,其中I/O个数52pin。
  • CORDIC数学函数硬件加速,FMAC滤波函数硬件加速,CRC校验计算单元,RNG(Random Number Generator)随机数生成器。
  • 2个12位的adc,4个比较器,3个运算放大器,4个DAC通道(2个外部和2个内部),1个内部电压参考缓冲器。
  • 1个低功耗RTC(Real-Time Clock),1个通用32位定时器,2个16位PWM定时器(专用于电机控制),7个通用16位定时器,1个16位低功耗定时器。
  • 1个FDCAN,3个I2C,3个SPI和2个I2S冲突复用(其中的2个I2S和SPI引脚冲突),1个SAI(Serial Audio Interface)音频接口。
  • 3个USART,1个UART,1个低功耗UART,一个全速USB(12MBit/s),1个UCPD。
  • 工作条件(略)

二、时钟学习

STM32G431时钟框图如下图所示。
蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

1. STM32G431RBT6具有三个不同的时钟源可以提供SYSCLK系统时钟

  • 4-48mhz高速振荡器与外部晶体或陶瓷谐振器(HSE)。它可以为系统锁相环提供时钟。HSE也可以配置为bypass,用于外部时钟。
  • 16mhz高速内部RC振荡器(HSI16),可由软件微调。它可以为系统锁相环提供时钟
  • 系统锁相环(PLL),最大输出频率170 MHz。它可以用HSE16或HSI16时钟送电。

2. 带时钟恢复系统的RC48 (HSI48):内部的HSIRC48 MHz时钟源可用于驱动USB或RNG外设。
3. 辅助时钟源:两个超低功耗的实时时钟源

  • 32.768 kHz低速外接晶体振荡器(LSE),支持四种驱动能力模式。LSE也可以配置为bypass模式,使用外部时钟。
  • 32 kHz低速内部RC振荡器(LSI),精度±5%,也用于时钟独立看门狗。

4. 外设时钟源:多个外设(I2S、USART、I2C、LPTimer、ADC、SAI、RNG)具有独立于系统时钟的时钟。
5. 时钟安全系统CSS (Clock security system):当HSE时钟发生故障时,系统时钟自动切换到HSI16,如果使能,则产生软件中断。也可以检测到LSE时钟故障并产生中断。

6. 时钟输出功能

  • MCO:微控制器时钟输出:它输出一个内部时钟供外部应用程序使用
  • LSCO:低速时钟输出:在所有低功耗模式下输出LSI或LSE

三、SRAM学习

stm32G431 x6/x8/xB系列具有32kBytes的SRAM,但是这32k的SRAM被分为三个部分。

蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

  • 首先是16kBytes的SRAM被映射到地址0x2000 0000(SRAM1),CPU可以通过系统总线(S-bus)进行控制,也可以通过指令/数据总线控制(I-but/O-but)(详见四、总线矩阵学习),SRAM1支持硬件奇偶校验。
  • 其次是6Kbytes被映射到地址0x2000 4000 (SRAM2),CPU只能通过系统总线进行控制,SRAM2可以保持在停止和待机模式。
  • 最后是10Kbytes被映射到地址0x1000 0000 (CCM SRAM),CPU主要通过指令/数据总线控制(I-but/O-but),以获取最大的性能,它的别名也是0x2000 5800地址,所有主节点(CPU、DMA1、DMA2)都可以通过S-bus访问,这些S-bus与SRAM1和SRAM2相邻)。CCM SRAM支持硬件奇偶校验,可以以1kbyte的粒度进行写保护。
  • 内存可以在最大CPU时钟速度下读写,等待状态为0。

四、总线矩阵学习

STM32G431RBT6总线矩阵如下图所示。
蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

  • ICode/Bus 总线 ICode 中的 I 表示 Instruction,即指令。我们写好的程序编译之后都是一条条指令,存放在 FLASH 中,内核要读取这些指令来执行程序就必须通过 ICode 总线,它几乎每时每刻都需要被使用,它是专门用来取指令的。
  • DCode/Bus 总线 DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数据的。我们在写程序的时候,数据有常量和变量两种,常量就是固定不变的,用 C 语言中的 const 关键字修饰,是放到内部的 FLASH 当中的,变量是可变的,不管是全局变量还是局部变量都放在SRAM中。因为数据可以被 Dcode 总线和 DMA 总线访问,所以为了避免访问冲突,在取数 的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数据。
  • S-Bus 系统总线 系统总线主要是访问外设的寄存器,我们通常说的寄存器编程,即读写寄存器都是通过这根系统总线来完成的
  • DMA总线(Direct Memory Access)即直接存储器访问。主要用来传输数据,这个数据可以是某个外设的数据寄存存器,可以在SRAM,可以在内部的FLASH。
  • AHB总线 (Advanced High performance Bus)高级高性能总线,主要用于内部的处理器,DMA,RAM,CORDIC,FMAC,DAC,ADC,CRC,GPIO等。
  • APB总线(Advanced Peripheral Bus)外围总线,主要用于定时器,比较器和各种通信接口等。

五、GPIO学习

STM32G431RBT6具有51个GPIO口可以进行使用。

GPIO可以配置为输出模式(推挽输出/开漏输出),输入模式(上拉/下拉),复用外围器件模式,

  • 推挽输出和开漏输出的区别:学习链接 ,**总结来说就是推挽输出可以输出高低电平,但是驱动能力不行,开漏输出无法输出高电平,需要外接上拉电阻,驱动能力强。
  • 输入模式:获取IO口的寄存器状态,通过配置上拉和下拉电阻,增强抗干扰能力。
  • 复用模式:复用为某些外围电路的专用IO,比如硬件IIC的SCL和SDA。

总结

本次学习和了解了STM32G431RBT6芯片上的片内资源大概和基础的时钟、总线和GPIO知识,希望大家可以一起学习+进步。

鉴于官方开发板售价过高,本人自己制作了一款蓝桥杯嵌入式开发板,完全兼容官方的开发板,并且接下来会基于这款开发板进行学习和制作学习日志,到时候所拍实物图片会与官方开发板略有不同,如果有意向一起学习的同学也可以私聊我加群互相学习,ps:找我低价买块开发板自己学习也是可以的~ 。文章来源地址https://www.toymoban.com/news/detail-406120.html

到了这里,关于蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯嵌入式STM32G431RBT6的学习(总大纲)(HAL库学习)板子介绍

    我写蓝桥杯嵌入式大概用到的外设,都是非常常用的。我在这里汇总一下。 蓝桥杯嵌入式基础模块——GPIO的使用(新板)STM32G431(HAL库开发)_薛定谔的猫咪死了的博客-CSDN博客 蓝桥杯嵌入式基础模块——串口的使用(新板)STM32G431(HAL库开发)_薛定谔的猫咪死了的博客-C

    2024年02月02日
    浏览(46)
  • 02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 (1)安装SQLite3软件 sudo apt-get install sqlite3 (2)安装库文件 sudo apt-get install libsqlite3-dev 安装成功后输入sqlite3查看 (3)安装sqlite3可

    2024年02月11日
    浏览(71)
  • 【嵌入式学习笔记】嵌入式基础9——STM32启动过程

    程序段交叉引用关系(Section Cross References):描述各文件之间函数调用关系 删除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被删除的冗余程序段(函数/数据) 映像符号表(Image Symbol Table):描述各符号(程序段/数据)在存储器中的地址、类

    2024年02月15日
    浏览(81)
  • 嵌入式学习笔记汇总

    本文整理STM32、STM8和uCOS-III的所有文章链接。 源码:mySTM32-learn STM32学习笔记(1)——LED和蜂鸣器 STM32学习笔记(2)——按键输入实验 STM32学习笔记(3)——时钟系统 STM32学习笔记(4)——NVIC中断优先级管理和外部中断EXTI STM32学习笔记(5)——系统定时器SysTick STM32学习笔

    2023年04月20日
    浏览(68)
  • 嵌入式学习笔记——SPI通信

    之前已经介绍了STM32的ADC、DMA、EXTI、TIME、NVIC、USART以及普通IO模式,此系列笔者还打算写最后三个大的内容,分别是SPI通信、IIC通信以及看门狗,后面就看大家的需求了,需要什么可以留在评论区,本文首先来介绍SPI的有关知识。 在通信协议分类的介绍中,提到过SPI,它是一

    2023年04月09日
    浏览(45)
  • 嵌入式学习笔记——IIC通信

    本文接着之前的M4系列介绍,对另外一个十分常见的通信总线进行一个介绍,就是IIC总线。 首先,还是找个免费劳动力来做一个官方的介绍,下面这一段话非常全面的介绍了IIC的各个特征,用之前提到的通信特征来总结,IIC是一种串行,同步,半双工,板级有线通信。与SPI对

    2024年02月06日
    浏览(71)
  • 【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式省赛客观题以及详细题解

    题解:   概念题。 MCO引脚,是单片机对外提供时钟的引脚。 HSE,高速外部时钟信号,时钟源由外部晶体/陶瓷谐振器与外部时钟; HSI,高速的内部时钟,由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入; SYSCLK,是系统时钟; HSE/2,对高速外部时钟进

    2023年04月16日
    浏览(138)
  • 嵌入式学习笔记——SysTick(系统滴答)

    上一篇中,介绍了关于STM32F407的时钟系统,在了解了系统的时钟后,最重要的内容就是搞定定时器的操作,本文从最基本的定时器,也是内核里面自带的一个定时器——SysTick(系统滴答)来进行介绍。旨在搞清楚什么是系统滴答,系统滴答有什么用,系统滴答怎么用。 SysTick这

    2024年01月21日
    浏览(44)
  • 【嵌入式】Thumb指令集(学习笔记)

    ARM开发工具完全支持Thumb指令,应用程序可以灵活的将ARM和Thumb子程序混合编程以便在例程的基础上提高性能或代码密度。在编写Thumb指令时,先要用伪指令CODE16声明(ADS的编译环境下),而且在ARM指令中要使用BX指令跳转到Thumb指令,以切换处理器状态。 Thumb指令集编码如下:

    2023年04月22日
    浏览(45)
  • 【蓝桥杯嵌入式】第十二届蓝桥杯嵌入式省赛客观题及详细题解

    解析: 波特率,指 每秒钟传输码元符号的个数,对符号传输速率的一种度量,单位为1baud/s 。 由于串口只有高低电平之分,即1码元等于1bit,即波特单位1baud和1bit等效,因此,此时的波特单位可以是位/秒。 答案: B 解析: 放大电路的开环,是指未经反馈通路形成的独立放大电

    2023年04月17日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包