
STM32
文章平均质量分 68
蓝天居士
修齐治平,先忧后乐
展开
-
STM32全系大阅兵(2)
STM32全系大阅兵(2)原创 2025-03-11 22:03:09 · 2589 阅读 · 0 评论 -
STM32全系大阅兵(1)
STM32系列微控制器由意法半导体(STMicroelectronics)设计制造并推出的一系列微控制器,基于ARM架构的不同版本Cortex-M内核构建而成(ST公司使用ARM公司设计的内核在通过完善外围电路,整个封装起来就做成了STM32)。该系列产品线广泛覆盖了从入门级、低功耗到高性能的各种应用场景需求。STM32系列微控制器因其低功耗、高性能、丰富的外设和强大的生态系统而广泛应用于各种嵌入式系统中。STM32内部的核心部分是ARM Cortex-M内核,由ARM公司设计。原创 2025-03-09 22:00:57 · 825 阅读 · 0 评论 -
STM32CubeMX配置步骤详解七 —— 时钟及其它内部参数配置(2)
STM32CubeMX配置步骤详解七 —— 时钟及其它内部参数配置(2)原创 2024-04-08 09:15:26 · 2828 阅读 · 0 评论 -
STM32CubeMX配置步骤详解六 —— 时钟及其它内部参数配置(1)
STM32CubeMX配置步骤详解六 —— 时钟及其它内部参数配置(1)原创 2024-04-07 08:25:38 · 3954 阅读 · 0 评论 -
STM32CubeMX配置步骤详解五 —— 基础配置(2)
STM32CubeMX配置步骤详解五 —— 基础配置(2)原创 2024-04-05 09:54:12 · 2376 阅读 · 0 评论 -
STM32CubeMX配置步骤详解四 —— 基础配置(1)
STM32CubeMX配置步骤详解四 —— 基础配置(1)原创 2024-04-04 07:41:25 · 3004 阅读 · 0 评论 -
STM32CubeMX配置步骤详解三 —— 安装
STM32CubeMX配置步骤详解三 —— 安装原创 2024-04-04 07:40:04 · 1680 阅读 · 0 评论 -
STM32CubeMX配置步骤详解二 —— 下载(2)
STM32CubeMX配置步骤详解二 —— 下载(2)原创 2024-04-03 13:10:37 · 1561 阅读 · 0 评论 -
STM32CubeMX配置步骤详解一 —— 下载(1)
STM32CubeMX配置步骤详解一 —— 下载(1)原创 2024-04-03 09:10:58 · 3093 阅读 · 0 评论 -
STM32CubeMX配置步骤详解零 —— 引言
STM32CubeMX配置步骤详解零 —— 引言原创 2024-04-03 08:29:56 · 1035 阅读 · 0 评论 -
STM32 ADC DMA通道数减小引发的异常问题及解决
ADC控制器STM32一共有3个ADC控制器:ADC1、ADC2、ADC3。18个通道STM32的ADC多达18个通道:16个外部通道和2个内部信号源。16个外部通道:芯片上有16个引脚是能够接到模拟电压上进行电压值检测的。 2个内部信号源:一个是内部温度传感器,一个是内部参考电压。一共支持23个引脚支持ADC,包括21个外部和2个内部信号源。STM32F10x系列芯片ADC通道和引脚对应关系如下图所示:ADC的转换模式单次转换模式:ADC只执行一次转换。 连.原创 2022-05-12 16:39:10 · 2526 阅读 · 0 评论 -
基于HAL库开发的STM32,将PB3设置为普通IO方法
测试期间发现PB3不能直接作为普通IO(第二次遇到这种问题,以防忘记,记录下来。。。),需要在使用此引脚之前进行配置:1、开启GPIOB及AFIO复用时钟 __HAL_RCC_AFIO_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();2、配置JTAG __HAL_AFIO_REMAP_SWJ_NOJTAG();注:该函数的作用,见官方...转载 2022-04-27 09:58:34 · 2216 阅读 · 5 评论 -
STM32F405驱动WS2812E灯珠灯带代码
头文件:#ifndef __BSP_LAMP_BEADS_H__#define __BSP_LAMP_BEADS_H__#include "tim.h"#include "main.h"#define LED_NUM 4#define GRB_LEN (3*8)//800KHz的倒数即1250ns,84MHz的倒数对应11.905ns即一拍(1 bit),105拍对应1250ns(满)//#define WS_ZERO 35//#define WS_ONE 45#define W原创 2021-11-03 11:37:03 · 1137 阅读 · 0 评论 -
RT-Thread系列三 邂逅线程链表
线程链表节点就好像是线程控制块里的一个钩子,要把线程插入各种链表中,就是通过这个节点来实现的。链表节点的定义在rtdef.h中,如下代码所示:/** * Double List structure */struct rt_list_node{ struct rt_list_node *next; /**< point to next node. */ struct rt_list_node *prev;原创 2022-03-08 15:25:42 · 1040 阅读 · 0 评论 -
RT-Thread系列二 认识线程
什么是线程在裸机开发中,系统的主体就是main函数里面顺序直行的无限循环,在这个无限循环中,CPU按照顺序完成各种操作。在多线程系统中,根据功能的不同,把整个系统分割成一个个独立的且无法返回的函数,这个函数就成为线程。线程的创建...原创 2022-03-08 14:00:26 · 590 阅读 · 0 评论 -
RT-Thread系列一 初识
RT-Thread官方并没有将nano放到自己的官方网站,而是作为一个Package,放在了KEIL官网http://www.keil.com/dd2/pack/中。...原创 2022-03-07 11:41:27 · 5509 阅读 · 0 评论 -
STM32F单片机编码器部分代码详解
.EncoderMode对应TIMx_SMCR寄存器中的SMS。此处为TIM_ENCODERMODE_TI12(0x03),表示计数器在TI1和TI2边沿处均计数。代码如下所示(STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h中):/** @defgroup TIM_Encoder_Mode TIM Encoder Mode * @{ */#define TIM_ENCODERMODE_TI1 TIM_SMCR原创 2022-02-14 20:11:24 · 2700 阅读 · 0 评论 -
C语言实现环形缓冲区(无需少用一个存储位置)代码
C语言实现环形缓冲区(无需少用一个存储位置)代码原创 2021-12-18 19:31:56 · 1128 阅读 · 0 评论 -
STM32F4调试编码器遇到的问题及解决(二)
上一篇文章讲到调整关键代码的位置可以解决MCU编码器对应引脚电平始终为低,从而导致读不到脉冲的问题,本篇文章深入探究其背后原因。原创 2021-11-11 10:22:59 · 2929 阅读 · 0 评论 -
STM32F4调试编码器遇到的问题及解决(一)
/** ****************************************************************************** * File Name : TIM.c * Description : This file provides code for the configuration * of the TIM instances. *****************...原创 2021-11-10 19:59:24 · 12524 阅读 · 2 评论 -
__HAL_TIM_GET_COUNTER函数解析
Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h中:/** * @brief Get the TIM Counter Register value on runtime. * @param __HANDLE__ TIM handle. * @retval 16-bit or 32-bit value of the timer counter register (TIMx_CNT) */#define __HAL_TIM_G.原创 2021-11-09 19:49:21 · 11831 阅读 · 1 评论 -
retarget.c
/* * Copyright (C) ARM Limited, 2006. All rights reserved. * * This is a retargeted I/O example which implements the functions required * for communication through an UART. The implementation relies on two UART * functions which the user must provid.原创 2021-11-08 16:27:02 · 625 阅读 · 0 评论 -
STM32F4 HAL 软件模拟I2C程序
i2c_software.h#ifndef __I2C_SOFTWARE_H__#define __I2C_SOFTWARE_H__#include "main.h"#define DEVICE_ADDRESS 0xA0 //7位地址#define BIT_WRITE 0#define BIT_READ 1//引脚定义/* * SCL——PB6 * SDA——PB7 */#define IIC1_SDA_IN() {GPIOB->MODER &= ~(3<原创 2021-11-01 15:44:50 · 3866 阅读 · 6 评论 -
STM32+Cube MX使用MPU6050 DMP时,在外部中断中调用read_dmp函数发生系统卡死问题的根本原因分析
STM32+Cube MX使用MPU6050 DMP时,在外部中断中调用read_dmp函数发生系统卡死问题的根本原因分析原创 2021-10-14 09:46:10 · 6323 阅读 · 20 评论 -
HC08调试全过程
一、模块简介HC08蓝牙模块是广州汇承公司的蓝牙串口通信模块。HC系列包括蓝牙、WiFi和433MHz无线通信模块,其中HC系列的蓝牙模块目前用于单片机通信的方面最广,具有低功耗,配备双模蓝牙,操作极为简单(安装支持BLE的APP后无需对码且指令集简单),主从机一体,通信效果好这些优点。HC-08是新一代的基于Bluetooth Specification V4.0 BLE蓝牙协议的数传模块。其无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm, 接收灵敏度-9原创 2021-10-08 09:41:49 · 9430 阅读 · 9 评论 -
STM32 HAL库 串口源码
通过STM32Cube MX配置串口后,生成的代码在main.c中(以串口1为例):/** * @brief USART1 Initialization Function * @param None * @retval None */static void MX_USART1_UART_Init(void){ /* USER CODE BEGIN USART1_Init 0 */ huart1.Instance = USART1; huart1.Init.BaudRate原创 2021-09-22 14:00:55 · 1169 阅读 · 0 评论 -
MPU6050 DMP 代码完全解析 —— dmp_init
main.c的main函数中dmp_init();mpu6050.c中//DMP初始化void dmp_init(void){ uint8_t temp[1] = {0}; //phph dmp_i2c_read(HW_S_HW_MPU_ADDR, MPU_DEVICE_ID, I2C_MEMADD_SIZE_8BIT,temp); Sensors_I2C_ReadRegister(HW_S_HW_MPU_ADDR, MPU6050_WHO_AM_I, I2C_MEMADD_SI原创 2021-09-15 19:47:56 · 7904 阅读 · 28 评论 -
MPU6050 DMP 代码完全解析 —— mpu_init
inv_mpu.c中,int mpu_init(void)中://配置陀螺仪满量程范围,FSR: ±2000°/s,LSB: 16.4 LSB/°/sif (mpu_set_gyro_fsr(2000)) return -1;inv_mpu.c中:/** * @brief Set the gyro full-scale range. * @param[in] fsr Desired full-scale range. * @return 0 if su..原创 2021-09-10 10:38:23 · 7426 阅读 · 1 评论 -
野火拂晓电机程序解析
User\motor_control\bsp_motor_control.c中:/** * @brief 设置电机方向 * @param 无 * @retval 无 */void set_motor_direction(motor_dir_t dir){ direction = dir; if (direction == MOTOR_FWD) { SET_FWD_COMPAER(dutyfactor); SET_REV_COMPAER(0);.原创 2021-09-06 10:15:15 · 553 阅读 · 0 评论 -
MPU6050例程解析 — 基于STM32
/** * @brief 初始化MPU6050芯片 * @param * @retval */void MPU6050_Init(void){ //在初始化之前要延时一段时间,若没有延时,则断电后再上电数据可能会出错 Delay(100); MPU6050_WriteReg(MPU6050_RA_PWR_MGMT_1, 0x00); //解除休眠状态 MPU6050_WriteReg(MPU6050_RA_SMPLRT_DIV , 0x07); /.原创 2021-08-23 10:45:08 · 1628 阅读 · 0 评论 -
STM32 I2C库函数版源码
硬件I2C/* I2C配置 */I2C_Handle.Instance = SENSORS_I2C;I2C_Handle.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;I2C_Handle.Init.ClockSpeed = 400000;I2C_Handle.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;I2C_Handle.Init.DutyCycle = I2C_DU.原创 2021-08-20 08:20:52 · 1788 阅读 · 0 评论