历史上的今天
返回首页

历史上的今天

今天是:2026年03月03日(星期二)

正在发生

2023年03月03日 | STM32G0实验演示01_ 互联矩阵

2023-03-03 来源:zhihu

实验目的

1、 了解STM32G0内部连接矩阵的架构。

2、 通过定时器之间的内部连接,达到定时器分频的目的。

3、 熟悉STM32CubeMX的配置流程。

4、 知道内部连接的优势

实验环境

软件环境:IAR 8.22

STM32Cube_FW_G0_V1.0.0

STM32CubeMX 5.0.1

硬件环境:Nucleo-G071RB

示波器/逻辑分析仪

原理框图



STM32CubeMX配置流程

1、 打开STM32CubeMX;

2、 选择STM32G071RB;

3、 使能TIM3的内部时钟并设置自动重装载的值为16000-1,开启自动重装载功能;

4、 开启TRGO OutPut功能且设置输出TRGO事件为更新事件


5、 配置TIM2的从机模式为External-Clock Mode 1,触发源为ITR2,设置通道1为PWM输出,自动重装载的值为1000-1,PWM输出的Pulse为500。



6、 将TIM2_CH1重定义到PA5这个GPIO上(默认是定义到PA0上的)这是为了测试简单,因为PA5上连接了LD4。



7、 检查一下时钟配置,确认系统时钟为16MHz,APB Timer的时钟为16MHz


8、 工程命名为STM32G0_Test,选择EWARM_V8工具链;

9、 直接生成IAR的工程;



增加代码

Main.c文件中的main函数中,增加如下粗体部分的代码

MX_TIM2_Init();

/* USER CODE BEGIN 2 */

HAL_TIM_Base_Start(&htim3);

HAL_PWM_Start(&htim2,TIM_CHANNEL_1);

/* USER CODE END 2 */

Nucleo-G071RB测试点


PA5在Nucleo-G071RB上有两个测试点,可以用来连接示波器或者逻辑分析仪;

CN5的第6Pin或者是CN10的第11pin;


频率计算

在APB的时钟为16MHz的情况下,TIM3的输入时钟为16MHz,经过16000的分频,就会得到1000Hz的更新事件频率,将这1000Hz的频率输入到TIM2的时钟内,再经过1000分频,就得到1Hz的时钟。让PA5(TIM2的通道1)产生一个占空比为50%的方波,我们即可在示波器上看到这个波形。

如果没有示波器,在Nucleo板子上也可以看到LD2灯在不断的闪烁。


推荐阅读

史海拾趣

问答坊 | AI 解惑

有人有过状态机调试软件吗?

状态机调试软件Debussy 哪个达人用过?好用吗?有资料能贡献吗?…

查看全部问答>

在车载GPS设备上开发自己的应用程序

由于车载GPS设备有较大的触摸屏,我想选一款市场上的车载GPS设备,在它上面开发自己的应用程序。我需要在车载GPS上做一个GUI,PDA与我自己的另一个模块通过串口相连,程序需要是实现的就是接收模块发来的消息在GPS屏幕上的GUI上显示,GPS根据用户在 ...…

查看全部问答>

程序员第二大学

深圳程序员QQ群联盟成立两年多拥有三十个以上的QQ群,人数达二千多人,现在群雄云集,其中深程高级群更是高手云集,现有两名女成员都是计算机硕士两名.很多都是大公司的技术主干,现推介如下QQ群,如有兴趣速速加入:深程高级群:17538442c++:15195967 .NET ...…

查看全部问答>

如何利用KPCI-3130系列模拟输出卡进行系统测试?

概述 当前,电子界正在逐渐脱离传统的测试和测量哲学,而转向更加混合的方法。几年前,如果要求生成或测量极其精确的数据点,除了台式仪器,几乎没有可用的解决方案。不过,随着电子元器件的持续进展,现在已经可以制作高精密电压源和高分辨率A/ ...…

查看全部问答>

把程序下载到富士通开发版出现 Failed to load flash loader错误

今天用了一上午时间,才把我的64位WIN7系统装好MLINK驱动。REBUILD ALL 之后,下载程序,总是出现如下错误提示:Wed Jun 13, 2012 13:20:21: Loaded macro file: D:\\IAR Systems\\Embedded Workbench 6.0 Evaluation\\arm\\config\\flas ...…

查看全部问答>

关于压合与PCB阶数的理解

各位前辈,小弟以前最多画过8层板,只用过几种有PCB厂商提供的常用的压合方式,对于这方面的知识不是很了解,现在新的厂商提供的压合方式是:1+N+1,2+N+2,3+N+3;好像是所谓的一,二,三阶,请问这个是啥意思啊?…

查看全部问答>

关于按键软件消抖中的释放抖动

关于按键软件消抖中的释放抖动 按键释放的时候也是有抖动的,大家一般是怎么考虑的?特别是单独使用IO中断的按键。为什么? [ 本帖最后由 wangfuchong 于 2012-10-31 10:48 编辑 ]…

查看全部问答>

ZigBeeCC2530无线PWM产生以及定时器应用

本帖最后由 jsxykj1 于 2014-3-10 20:54 编辑 分享下PWM产生呼吸灯经验,顺便和大家一起继续学习无线,由于小弟新手不才,有不对的请多多原谅。首先谢谢合纵物联的产品和技术支持,官方群 305145401。大家有兴趣的都来讨论ZIGBEE,主要是能够享受 ...…

查看全部问答>

【EEworld原创教程讨论】提问《MSP430入门课程之——Launchpad IDE开发工具的使用》

1、刚看了430版主wstt的《MSP430入门课程之——Launchpad IDE开发工具的使用》一课,主要讲了IAR for 430的IDE使用方式,讲的很详细,步骤清晰,很适合初学者,感谢版主的辛勤努力。下一课将讲CCS IDE开发工具使用? 2、在实例中讲到,新建好工程 ...…

查看全部问答>

MSP430的ADC采样转换速率到底多少哦??手册说最高200ksps,怎么算来的??

ADC时钟源设置的是SMCLK=25MHz,5分频,也就是5MHz,采样保持时间4个ADC时钟周期,12位精度,转换时间13个周期,这样算起来不止200ksps啊,程序如下:void ADC0_Init() {   P6SEL|=BIT0;   REFCTL0 |= REFMSTR+REFVSEL_2+REFO ...…

查看全部问答>