STM32G0
文章平均质量分 53
SCCELE
这个作者很懒,什么都没留下…
展开
-
STM32G0学习手册——Cortex M0+ NVIC 与FreeRTOS中断管理
知识点1/*< STM32G0xx uses 2 Bits for the Priority Levels */#define __NVIC_PRIO_BITS 2 所以M0+的中断优先级:0、1、2、3知识点2在Cortex-M0 上,FreeRTOS内核的临界区屏蔽了所有中断(除了NMI、HardFault、复位)。知识点3FreeRTOS 任务优先级从0开始,作为最低的紧...原创 2021-08-14 18:16:30 · 2413 阅读 · 3 评论 -
STM32G0学习手册——FreeRTOS任务通知
目录概述代替二值信号量代替计数信号量代替事件组代替长度为1的消息队列概述每个任务都有一个32位的通知值,可以替代二值信号量,计数信号量,事件组,也可以代替长度为1的队列。 有以下几种方式发送通知给任务:1.有通知未读,则不覆盖通知值2.直接覆盖通知值3.设置通知值一个或者多个位,当做事件组来使用4.递增/递减通知,当做信号量来使用 有以下缺点:1.只能有一个任务接收通知消息2.只有等待通知的任务可以被阻...原创 2021-08-09 22:12:13 · 454 阅读 · 0 评论 -
STM32G0学习手册——FreeRTOS软件定时器
1.创建好带有printf-stdarg.c的FreeRTOS的工程2.修改main.c文件/* USER CODE BEGIN Includes */#include "FreeRTOS.h"#include "task.h"#include "timers.h"#include <stdio.h>#include <string.h>/* USER CODE END Includes *//* USER CODE BEGIN PV */static原创 2021-08-01 16:23:30 · 876 阅读 · 0 评论 -
STM32G0学习手册——FreeRTOS事件组
1.创建好带有printf-stdarg.c的FreeRTOS的工程2.修改main.c文件/* USER CODE BEGIN Includes */#include "FreeRTOS.h"#include "task.h"#include "queue.h"#include "semphr.h"#include "event_groups.h"#include <stdio.h>#include <string.h>/* USER CODE END原创 2021-07-31 12:28:03 · 683 阅读 · 0 评论 -
STM32G0学习手册——FreeRTOS信号量
二值信号量的用法示例1.创建好带有printf-stdarg.c的FreeRTOS的工程2.修改main.c文件/* USER CODE BEGIN Includes */#include "FreeRTOS.h"#include "task.h"#include "queue.h"#include "semphr.h"#include <stdio.h>#include <string.h>/* USER CODE END Includes *//原创 2021-07-24 13:01:11 · 230 阅读 · 0 评论 -
STM32G0学习手册——FreeRTOS消息队列
1.创建好带有printf-stdarg.c的FreeRTOS的工程2.修改main.c文件/* Private includes ----------------------------------------------------------*//* USER CODE BEGIN Includes */#include "FreeRTOS.h"#include "task.h"#include "queue.h"#include <stdio.h>#include原创 2021-07-18 15:12:29 · 476 阅读 · 0 评论 -
STM32G0学习手册——移植FreeRTOS v202107.00
1.准备FreeRTOS源文件1.1、到freertos.org下载最新版本的源文件,链接地址1.2、FreeRTOS 文件结构如下:需要用到的是粉色的头文件和翠绿色c文件。2、使用STM32CubeMX生成初始化代码(BSP_Init)2.1、使能HSE/LSE/SWD/GPIO(引脚数量和外设具体看你需要,这里是点灯用)2.2、时钟数设置64(MHz),设置工程的文件名,路径,IDE与版本,勾选生成'.c/.h'。生成工程文档3、复制FreeRTOS文件到工程目录中3原创 2021-06-30 23:42:31 · 1883 阅读 · 4 评论 -
STM32G0学习手册-使用BootLoader通过串口下载固件
1.使用nBOOT0 比特位来控制1.1、打开STM32CubeProgrammer,先使用stlink连接电脑和开发板,点击connect原创 2021-06-13 23:45:50 · 7665 阅读 · 8 评论 -
STM32G071RB开发板原理图
GitHub项目地址:https://github.com/yesp-chow/STM32G071RB-Dev-board淘宝项目地址:https://item.taobao.com/item.htm?ft=t&id=624997327790原创 2020-08-16 18:27:05 · 3321 阅读 · 1 评论 -
STM32G0学习手册——SPI总线使用
目录概述概述SPI有四种工作模式:在开发板中w25q16芯片中使用的市mode0。代码实验GitHub项目地址:W25Q16-SPI-Demo1、CubeMx中芯片选择STM32G071RBTx,新建工程2、开启SWD调试、HSE3、开启USART1,设置波特率115200、8bit、None(无奇偶检验)、停止位14、 设置PB11为SPI2_MOSI,PB13为SPI2_SCK,PB14为SPI2_MISO,PB12为GPIO_Output..原创 2020-08-16 18:08:13 · 2719 阅读 · 1 评论 -
STM32G0学习手册——多串口同时使用printf输出
这个实验向我们演示,不同的串口使用printf函数来输出对应的信息。默认printf()函数使用usart1,剩下usart2~4分别使用USART2_printf(),USART3_printf(),USART4_printf()输出信息。项目地址:GitHub新建工程1、新建芯片工程"g071c8/g07rb",打开SWD调试接口、HSE2、 设置时钟树,HCLK=64MHz3、查看数据手册,看那些引脚可以用作usart1、usart2、usart3、usart4。把这些引.原创 2020-07-18 21:18:57 · 3764 阅读 · 1 评论 -
STM32G0学习手册——I2C总线使用(使用硬件I2C-HAL库)
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。最新的I2C标准协议是2014年第6版本:UM10204_I2C-bus specification and user manual这里使用的是G071RB开发板,已经自带有24C08芯片,是一个8K的EEPROM芯片。项目地址:...原创 2020-07-10 23:40:47 · 5420 阅读 · 0 评论 -
STM32G0学习手册——WWDG运用
概述系统窗口看门狗(WWDG)用于检测软件故障的发生,通常由外部干扰或无法预料的逻辑条件引起,导致应用程序放弃其正常顺序。 看门狗电路会在编程的时间段到期时生成MCU复位,除非程序在T6位清零之前刷新倒数计数器的内容。如果在递减计数器达到窗口寄存器值之前刷新递减计数器值,也会产生MCU复位。这意味着必须在有限的窗口中刷新计数器。WWDG时钟是从APB时钟预分频的,并具有可配置的时间窗口,WWDG最适合要求看门狗在准确的时序窗口内做出反应的应用。主要特性激活窗口看门狗后,如满意如下条件则重置芯片.原创 2020-05-24 23:49:55 · 2897 阅读 · 0 评论 -
STM32G0学习手册——IWDG运用
概述由独立的RC振荡器提供时钟(可以在待机和停止模式下运行)以下条件会触发重置–当倒数计数器(downcounter)的值小于0x000时,复位(如果激活了看门狗)–如果在窗口外重新加载倒数计数器(downcounter),则重置(如果激活了看门狗)框图寄存器接口位于VDD电压域中。 看门狗功能位于VDD电压域中,在停止和待机模式下仍然起作用。通过将值0x0000 CCCC写入IWDG密钥寄存器(IWDG_KR)来启动独立看门狗时,计数器将从复位值0xFFF开始递减计数。..原创 2020-05-16 16:06:13 · 7116 阅读 · 2 评论 -
STM32G0学习手册——使用HAL库进行PWM实验
前言在CubeMx中配置PWM,预分频系数和计数的值决定了波形的周期,pulse决定了占空比。PWM边沿对齐模式(向上计数)在PWM模式1下,TIMx_CNT<TIMx_CCRx时,PWM参考信号OCxREF为高,否则为低。PWM边沿对齐模式(向下计数)TIMx_CR1中的DIR为1时,执行向下计数。在PWM模式1时,TIMx_CNT>TIMx_CCRx时OCxREF为低,否则为高。PWM模式1与PWM模式2区别PWM模式1在向上计数时,一旦TIMx_CNT.原创 2020-05-10 16:57:05 · 4522 阅读 · 3 评论 -
STM32G0学习手册——使用定时器中断(HAL库)
定时器分类G0系列有TIM1、TIM2、TIM3、TIM6、TIM7、TIM14、TIM15、TIM16、TIM17,它们区别如下图其中TIM1为高级定时器;TIM2/3/14/15/16/17为通用定时器,TIM2支持32bit;TIM6/7为基本定时器计时器时序图TIM1,TIM2,TIM3支持(中央对齐)向上向下模式,方向在向上向下时发生变化,减少对电机的噪声干扰...原创 2020-05-05 23:24:24 · 8423 阅读 · 0 评论 -
STM32G0学习手册——使用HAL库进行EXTI中断实验
G0外部中断框图扩展中断和事件控制器可以生成中断和事件,并将处理器从停止模式唤醒。中断来源可配置事件(Configurable events)来自GPIO,PVD以及比较器COMP1和COMP2的外部中断关联。直接事件(Direct events)来自RTC,Tamper,I2C1,USARTS 1和2,CEC,LPUART1,LPTIM 1、2,LSE,UCPD 1、2。...原创 2020-05-04 00:09:09 · 9939 阅读 · 4 评论 -
STM32G0学习手册——使用HAL库进行USART串口通讯
芯片基本外设配置在SYS里面开启Serial Wire调试接口 在RCC里面使能HSE (Crystal/Ceramic Resonator)配置时钟树选中“HSE”、"PLLCLK",在HCLK(MHz)中输入64,回车,软件会自动配置数值。配置USART1外设在connectivity选项卡中,选择"USART1",在mode中选择:Asynchronous(异步通讯...原创 2020-05-02 22:53:19 · 12024 阅读 · 5 评论 -
STM32G0学习手册——时钟树管理
概述STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。 系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期) 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。 一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。 不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。 对...原创 2020-04-19 23:25:23 · 5567 阅读 · 0 评论 -
STM32G0学习手册——点亮LED(GPIO用法HAL库)
新建CubeMX工程这片文章中,我们使用芯片自带的HSI时钟,所以不需要配置时钟树,使用默认频率(16MHz),以便理解步骤。打开SWD调试接口 在引脚视图中,点击PC6,选择"GPIO_Output"。在配置页中选择GPIO-PC6。(LED灯是接到PC6引脚的)配置引脚属性GPIO output level:默认输出电平。Hight和LowGPIO mode :设置...原创 2020-04-19 18:10:21 · 4438 阅读 · 0 评论 -
STM32G0学习手册——使用SWD接口进行调试 (HAL库)
STM32G0系列提供了SWD接口调试,所以先要熟悉如何调试,接下来才能把代码烧录到芯片里面去。 首先我们先新建工程,如果不是官方开发板就点"start My project from MCU",选择对应的芯片型号。我这里选G071C8,进入工程。 在"System Core"中,找到"SYS";或者在上方搜索框中输入SYS快速定位。 在"SYS Mode and Configu...原创 2020-04-19 16:31:16 · 7727 阅读 · 5 评论 -
STM32G0学习手册——开发环境搭建与熟悉(CubeMX与MDK5)
CubeMX设置1、在官网下载安装包安装,链接地址;2、一开始没有对应芯片的固件包,先下载安装。点击"Help—Manage embedded software packages",找到对应的芯片型号等待下载完成;如果在线安装太慢,可以先下载固件包到电脑,然后导入固件包。固件包下载地址:链接地址。在"Manage embedded software packages"下方点击"Fo...原创 2020-04-18 19:21:31 · 8868 阅读 · 1 评论