文章目录

  • 前言
  • 一、芯片简介
  • 二、时钟学习
  • 三、SRAM学习
  • 四、总线矩阵学习
  • 五、GPIO学习
  • 总结

前言

首先学习了解一下蓝桥杯嵌入式CT117E-M4开发板的主控芯片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时钟框图如下图所示。

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被分为三个部分。

  • 首先是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总线矩阵如下图所示。

  • 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:找我低价买块开发板自己学习也是可以的~ 。

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

  1. 蓝桥杯嵌入式CT117E硬件开发平台经验分享11 | 第九届蓝桥杯国赛题

    基于 基于 CT117E 嵌入式竞赛板 嵌入式竞赛板 的 "电子秤"程序设计与调试 赛题硬件框图 由于赛题细节多,赛题PDF要求书放入了附件,链接后续加入.本文主要讲述本届题目的困 ...

  2. 蓝桥杯嵌入式CT117E硬件开发平台总结 | 最后的分享

    最后一篇关于蓝桥杯的经验分享,即是总结从开始准备蓝桥杯以来的点点滴滴经验,并汇总成了简单的脑图结构方便查看,本文开源了蓝桥杯个人做的所有代码,仅供参考(勿扰). 脑图汇总了最后准备国赛时根据库函数进行 ...

  3. 关于蓝桥杯嵌入式CT117-M1(旧板)stm32f103芯片的coocox keil5 烧写办法

    由于实验室只有嵌入式旧板,且stm32程序烧写,和单片机烧写完全不同.蓝桥杯嵌入式新板自带DAP仿真器下载器,旧板官方推荐只使用coocox.网上资源很多,但各有缺点,说coocox只能用keil4进 ...

  4. 【蓝桥杯单片机(9)】DS1302时钟芯片学习笔记

    备赛目录 目录 1.DS1302简介 1.1功能 1.2通信方式 1.3电路连接图 2.DS1302通信时序 3.编写读取函数 3.1地址 3.2BCD码与十进制互换 4.DS1302时间读取实验 1 ...

  5. 【STM32G431RBT6】蓝桥杯嵌入式 ADC采样DMA传输配置

    一.介绍 蓝桥杯嵌入式开发板使用的是STM32G431RBT6,这个G系列的mcu使用STM32cubemax配置的时候和普通的F系列不太一样. 二.原理图 同时开发板预留了两个adc采样通道,分别是 ...

  6. 蓝桥杯嵌入式G431学习之开关LED灯

    蓝桥杯嵌入式G431学习之开关LED灯 1.直接开关LED灯 在/* USER CODE BEGIN 0 / 在此写入代码 / USER CODE END 0 */ /*PD2为LED锁存器控制引脚* ...

  7. 【蓝桥杯嵌入式】比赛笔记(2)根据固件库快速配置各模块初始化

    [蓝桥杯嵌入式]比赛笔记(2)根据固件库快速配置各模块初始化 因为蓝桥杯比赛时间很短,并且如果自己去记忆各模块初始化的话,也难免有问题,所以这里给出一个通过固件库的快速初始化模块的方法. 比赛提供固件 ...

  8. stm32入门学什么板子_“蓝桥杯”嵌入式stm32开发入门(1)概述

    声明:笔者绝不是给"蓝桥杯"打广告,而是笔者曾经参加过蓝桥杯嵌入式设计与开发比赛,想借此机会总结并分享自己的学习中的点点滴滴. 此系列教程将以蓝桥杯官方指定的开发板和接口板来深入浅 ...

  9. 【蓝桥杯嵌入式】【STM32】7_RTC之实时时间显示和硬件闹钟设置

    文章目录 1.RTC的三个可用时钟源 2.RTC框图 3.写代码前需要知道的一些标志位 4.配置流程 5.源代码 6.关于设置闹钟这件事  6.1.配置流程  6.2.实验源代码   下载工程文件: ...

最新文章

  1. Apache2.4+Tomcat7集群搭建
  2. 再见,Teamviewer!这款国产轻量级远程桌面软件超牛逼!
  3. 数字原生,创新生长|企业如何打造数字创新的“飞天梦”?
  4. 荣获中国音视频产业大会「科技创新奖」,网易云信彰显行业领先水平
  5. MvvmLight学习心得三
  6. c语言printf到指定文件,急求如何将下列C语言程序数据存储到文件中?
  7. 雄安大学真的来了!占地总面积2550亩!
  8. 〖谷腾读书会GTC〗Digital economy
  9. IP 层收发报文简要剖析1-ip报文的输入
  10. NetBeans 时事通讯(刊号 # 120 - Oct 14, 2010)
  11. CISSP考试复习经历分享2020年12月
  12. NanoHttpd android客户端作为服务器使用
  13. matlab 分块 矩阵 对角 合并
  14. Unity Burst学习2
  15. 在家搭建 Minecraft 服务器,和远程小伙伴一起联机
  16. IE编程1(.net)——读取IE窗口信息
  17. 好听的音乐---飛魚樂園音樂專輯(Orchid Island)
  18. 卢克的HTML与CSS基础
  19. Oracle---SQL语句
  20. 如何从面试官中知道自己需要准备什么

热门文章

  1. 【Redis】Windows10 系统安装 Redis 教程
  2. 2020上半年总结及感悟
  3. leetcode1599. 经营摩天轮的最大利润(Python3、c++)
  4. 时间不等人,珍惜你所拥有的每分每秒
  5. 解决Office 2007每次打开都要出现 配置Microsoft Office Professional Plus 2007
  6. 微信小程序之书籍详情页
  7. jQuery如何实现滑入滑出效果(跟随鼠标滑入滑出蒙板)
  8. 【Web前端基础】实验4 图像与多媒体文件
  9. 使用阿里EasyExcel实现上传下载、导入导出Excel
  10. CentOS6.x 手动安装HAWQ 错误记录