
STM32CubeMX
qq_33974167
涓涓细流,方可成河。
展开
-
用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
概述 在使用 DHT11 的时候,时序通信需要微秒来操作,STM32CubeMX 自带一个系统时钟,但是实现的是毫秒级别的。因此就自己用通用计时器实现一个。文章目录概述1.配置定时器时钟2.计数器时钟频率及计数模式预分频系数计数器模式自动重装载值3.打开定时器中断4.具体实现代码5.代码测试环境:开发板:STM32F4探索者(正点原子)1.配置定时器时钟选择时钟源这里选择的是内部时钟,来自 RCC 的TIMxCLK,在通用定时器框图中我们可以看到如下:而我们可以在 STM3原创 2020-12-01 22:16:37 · 7613 阅读 · 4 评论 -
什么是STM32CubeMX?(STM32代码生成器)
一、STM32CubeMX 介绍STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,通过自己对硬件的需要,进行选择,而后可以快速生成代码,减少开发人员的开发难度,时间和花销。STM32 覆盖整个STM32系列。在我看来有如下优点:大量的芯片(资源,价格介绍),方便对我们进行芯片选型除了拥有芯片本身的外设选择外,还拥有一系列的中间件,如 RTOS, USB, TCP/IP等对芯片的整体资源,以及时钟树有更深刻的认识快速代码生成(对外设进行初原创 2020-07-15 23:02:25 · 2952 阅读 · 0 评论 -
STM32CubeMX之串口不定长数据接收(接收中断+空闲中断)
概述 上一篇讲了用串口中断的方式接收数据,但是它有两个缺点只能定长接收数据如果数据超出,那么产生溢出中断,那时发送的数据将不再接收所以接下来就会用 IDLE 中断来解决这个问题文章目录概述一. 空闲(IDLE)中断1. 空闲帧二. 空闲中断相关的宏三. 空闲中断使用实例环境:开发板:STM32F4探索者(正点原子)一. 空闲(IDLE)中断1. 空闲帧 什么是空闲帧?在 STM32的中文参考手册 中,你会发现如下解释: 空闲帧可理解为整个帧周期内电平均为“1原创 2020-07-08 01:07:17 · 3780 阅读 · 2 评论 -
STM32CubeMX之串口使用(中断方式)
概述上一篇 说了 STM32CubeMX之串口的使用 (阻塞模式) ,这一章来说说串口中断模式收发数据。文章目录概述一. 在STM32CubeMX 图形化中开启串口中断二. 串口中断相关函数介绍三. 串口中断函数使用实例四. HAL库中的串口相关源码介绍环境:开发板:STM32F4探索者(正点原子)一. 在STM32CubeMX 图形化中开启串口中断在 前一篇 STM32CubeMX之串口的使用 (阻塞模式) 的文章的基础上,打开串口中断,如下图所示:然后就可以生成工程了二. 串口中原创 2020-07-07 00:40:56 · 8558 阅读 · 3 评论 -
STM32CubeMX之串口重定向(printf 的使用)
概述 我们在初学 C 语言的时候,第一句打印就是 printf("hello world") ,后面也经常用来调试打印信息,但是我们在单片机开发的时候 printf 就用不了,因为 printf 会打印在命令行窗口上,但是单片机上肯定没有,所以我们通过改写函数,将 printf 重定向到串口之上,然后通过串口调试助手来显示。文章目录概述一. 改写函数二. printf 使用实例一. 改写函数新建一个头文件 debug_com.h#ifndef __DEBUG_COM_H#define __DE原创 2020-07-01 23:03:24 · 4625 阅读 · 2 评论 -
STM32CubeMX之串口封装详解
概述 上一篇写了 STM32CubeMX 的串口的使用,而这篇来扒一扒,它是怎么进行封装的。其实在标准库中也类似如下过程。文章目录概述一.串口实例二. 串口实例初始化三. 串口数据的发送(阻塞模式)四. 串口数据接收一.串口实例 我们都知道,其实单片机最后其实都是对 串口相关的寄存器 进行操作,那么我们想扒一扒它的流程,必然要先知道串口相关的寄存器是哪些,因此查阅 STM32F4xx中文参考手册 ,我们可以在 第711页 找到以下相关寄存器:状态寄存器数据寄存器波特率寄存器原创 2020-07-01 01:36:22 · 3269 阅读 · 4 评论 -
STM32CubeMX之串口的使用 (阻塞模式)
环境:开发板:STM32F4探索者(正点原子)一. 进行项目的必要配置时钟配置调试配置如果不大清楚,可以看 STM32CubMX工程创建(点亮LED)二. 串口选择 查看 STM32F4探索者 开发板的原理图,如下图所示,我们可以看到USB转串口是在USART1因此我们在 STM32CubeMX 中如下图进行勾选,并进行配置序号一,代表串口处于异步模式序号二,关闭串口的硬件流控的功能序号三,波特率设置,一般是根据通信的芯片进行选择,这里选择是115200 bps序号原创 2020-06-28 23:38:02 · 3257 阅读 · 3 评论 -
STM32CubeMx(STM32F4 +FreeRTOS+CMSIS-RTOS)之资源(线程,队列,内存池)管理
由于可能创建很多个线程,线程互相通信,因此,我们将线程ID统一存储在一个结构体中,进行管理。资源管理结构体如下:typedef struct resource{ uint8_t initialized; uint8_t id; osThreadId led_thread; uint8_t led_init...原创 2019-10-30 01:33:47 · 1764 阅读 · 0 评论 -
STM32CubeMx(STM32F4 +FreeRTOS+CMSIS-RTOS)之队列(queue)创建
一.CMISIS-RTOS中queue相关API概览模块 宏定义 描述 消息队列定义 osMessageQDef 定义一个消息队列 osMessageQ 访问一个消息队列定义 模块 API 描述 消息队列管理: 定义,创建,发送和接收数据 osMessageCreate 创建一个消息队列...原创 2019-10-29 01:46:22 · 3156 阅读 · 1 评论 -
STM32CubeMx(STM32F4 +FreeRTOS+CMSIS-RTOS)之测试串口线程(并添加 printf 重定向)
一.添加printf重定向FreeRTOS其实有自己的printf函数,这里先不管它,直接用普通的重定向方法在usart.c的文件中,添加下列代码,且该文件需要包含#include "stdio.h"#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PRO...原创 2019-10-29 00:09:01 · 1742 阅读 · 0 评论 -
STM32CubeMx(STM32F4 +FreeRTOS+CMSIS-RTOS)之线程(thread)创建
一.CMISIS-RTOS中thread相关API概览 模块 宏定义 描述 线程定义 osThreadDef 定义一个线程 osThread 访问一个线程定义 模块 API 描述 线程管理: 定义,创建和控制线程 osThreadCreate 开始执行一个线程 osThreadTer...原创 2019-10-28 01:58:11 · 2381 阅读 · 0 评论 -
CMSIS-RTOS学习目录
开始在STM32F407开发板进行freeRTOS的学习,由于在STMCuMx下生成的代码,进行了CMSIS-RTOS封装,所以有下列的学习。 学习目录: ...原创 2019-10-27 23:37:54 · 387 阅读 · 0 评论 -
FreeRTOS 之五种内存分配方案(概括总结)
一.FreeRTOS 之五种内存分配方案Heap_1: (1).在此方案中,实现了基础版本的pcPortMalloc ,而没有实现vPortFree(),因此它适用于从来不会删除任务的应用 ( 2) 动态分配的内存总是确定的 ,不会产生内存碎片 Heap_2: 该方案不同于方案1,它...原创 2019-10-25 02:17:03 · 2489 阅读 · 0 评论 -
STM32CubMx(STM32F4 +FreeRTOS+CMSIS-RTOS)之 FreeRTOS工程创建
一.在STM32CubMX中添加FREERTOS系统1.外部时钟配置(也可配内部时钟) 该开发板为STM32F4探索者,查看原理图可知,其外部时钟为8MHz所以时钟树配置如下: 此时主时钟已达到最大。2.添加在线调试功能(适用于Jlink,stlink) ...原创 2019-10-22 02:30:35 · 1388 阅读 · 2 评论 -
使用STM32CubeMX建STM32F4工程(让LED闪烁)
一.选择器件首先,先开始一个工程:选择自己所使用的芯片,即可以如下一个个选,也可以直接搜索。二.选择所要使用的硬件资源直接左键点击图中的GPIO,就可以选择GPIO的模式,然后更进一步就是通过System Core 下GPIO选项中,其他的选项进行配置然后选择芯片时钟:(此时选择的时钟为外部时钟)三.配置时钟在第二步,选择完时钟之后,就可以对时钟进行配置,这...原创 2019-04-04 10:35:31 · 2745 阅读 · 0 评论 -
什么是STM32CubeMX?(STM32代码生成器)
一、STM32CubeMX 介绍 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,通过自己对硬件的需要,进行选择,而后可以快速生成代码,用于快速的开发与验证想法。在我看来有如下优点: 1.大量的芯片(资源,价格介绍),方便对我们进行芯片选型 2.快速代码生成(对外设进行初始化),方便我们对我们的想法进行验证与开发...原创 2019-04-04 10:33:00 · 2752 阅读 · 0 评论