- 2024-11-21gscoolink:gsv2001的sdk移植
1前言 以gsv的sdk的应用代码为例,将应用代码从m0核移植到m1核的mcu上; 因为用的是hal库,所以互相移植修改的并不多;实际改个头文件就可以编译了; 虽然我hal库用的是m1核的hal库,但是实际上我直接啥也没改,跑在m4核的gdf303上也没啥问题;2修改项目名 修改.uprojx的名字,
- 2024-10-20光敏电阻控制蜂鸣器(江科大stm32学习笔记)
首先,选择模块化编程,使代码结构更加的清晰,整洁,便于更改。此处需要对蜂鸣器部分,光敏电阻传感器部分进行模块化编程。电路原理图对蜂鸣器以及光敏电阻传感器的电路原理图进行介绍。如图所示为蜂鸣器的电路原理图:采用三级管进行驱动,当PNP的基级引脚接低电平时,蜂鸣器启动,高电平
- 2024-09-07寄存器映射及地址计算(STM32F407)
上篇文章介绍了存储器映射(存储器映射(STM32F407)-CSDN博客),本文介绍寄存器映射的基本概念。1、寄存器映射简介寄存器是一类特殊的存储器,它的每个位都有特定的功能,可以实现对外设/功能的控制,给寄存器的地址命名的过程就叫寄存器映射。举个简单的例子,大家家里面的纸张就好比通用
- 2024-08-23STM32寄存器操作、模板构建
目录外设寄存器查找①名称②偏移地址③寄存器位表④位功能说明寄存器基本操作C语言的置位和清零具体方法设置GPIO流程给寄存器赋值带参数宏STM32F1xx芯片识别存储器映射寄存器映射让GPIOB端口的16个引脚输出高电平,要怎么实现?STM32寄存器映射C语言对寄存器的封装新建寄
- 2024-08-18基于STM32的寄存器实现点亮LED--基于RUST实现
main.rs#![no_std]#![no_main]usecore::ptr;usecortex_m_rt::entry;usepanic_haltas_;//当发生panic时停止执行//定义寄存器地址constRCC_BASE:u32=0x40021000;constGPIOB_BASE:u32=0x40010C00;constRCC_APB2ENR_OFFSET:u32=0x18;constGPIOB
- 2024-08-06基于两颗CH582芯片实现GPIO模拟SPI全双工通讯__从机通过GPIO中断读写数据
简介:此程序是根据标准SPI协议规范使用模式0编写的一份模拟SPI全双工数据收发例程,经过测试,一个字节收发时长可压缩至最低115us左右,约9091字节每秒=73Kbps的通讯速率,注释中尽可能解释了每一步的含义,后续有想法应该会对其进行优化。注:笔者开发经验较少,在编程上或许复杂了一些。
- 2024-08-01STM32学习三GPIO操作
点灯:二极管利用的是两边的电压差点亮,如图外接有3.3v电压,所以只需要引脚给低电平即可驱动。当外接地时,需要芯片给出高电平驱动,在推挽输出的模式下输入输出都有很强的驱动能里。但一般都是led外接高电压,因为很多芯片都采用高电平弱驱动,低电平强驱动的规则。1.芯片数据手册
- 2024-07-237.用寄存器点亮LED
7.用寄存器点亮LED7.1GPIO简介GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚。通过将STM32芯片的GPIO引脚与外部设备连接,可以实现外部通信、控制以及数据采集的功能。STM32芯片的GPIO被分成很多组,每组有16个引脚。例如,STM32F103VET6的芯片有GPIOA至GPIOE
- 2024-07-18STM32寄存器操作、模板构建
2024年7月18日发布于博客园,本文涉及到STM32F4XX和STM32F1XX系列目录外设寄存器查找①名称②偏移地址③寄存器位表④位功能说明寄存器基本操作C语言的置位和清零具体方法设置GPIO流程给寄存器赋值带参数宏STM32F1xx芯片识别存储器映射寄存器映射让GPIOB端口的16个引脚输
- 2024-07-08单片机知多少之STM32F103-GPIO输出应用篇
示例:选择GPIOB做流水灯控制逻辑将8个发光二极管的负端分别接入PB0~PB7,正端接5V电源,当配置GPIO为低电平时,回路导通,二极管开始工作,亮灯;当配置GPIO为高电平时,回路等电位断开,二极管不工作,灭灯,使GPIO输出按一定顺序执行,即流水灯。编写代码变量定义:GPIO_InitTypeDefGPIO_InitSt
- 2024-03-10MPU6050 memcmp(firmware+ii, cur, this_write)初始化问题|MPU6050固件库加载问题
使用MPU6050dmp固件库时候报错:MPU6050固件库加载,最后运行到“memcmp(firmware+ii,cur,this_write)”无法通过!从网上查找了相同问题的解答,发现修改了IIcSDA与SCL端口但是头文件的中的宏定义没有修改未修改之前的端口:修改之后的端口:这里在修改宏定义的时候遇到了些问
- 2023-08-12野火stm32指南者开发板点亮LED
目录1.芯片手册中的LED电路图2.官网手册3.代码演示3.1stm32f10x.h头文件3.2点亮绿灯3.3点亮蓝灯3.4点亮红灯3.5LED灯闪烁,绿灯闪烁。3.6红绿蓝三色LED灯切换闪烁1.芯片手册中的LED电路图2.官网手册3.代码演示3.1stm32f10x.h头文件#ifndef_STM32F10X_H#define_ST
- 2023-07-19STM32蜂鸣器
1.接线图(蜂鸣器低电平发声,高电平不发声) 2.程序编写#include"stm32f10x.h"//Deviceheader#include"Delay.h"intmain(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitTypeDefGPIO_InitStructure; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_O
- 2023-07-1702. STM32F1的系统框架
一、STM32的系统框架 STM32F103采用的是Cortex-M3内核,内核即CPU,由ARM公司设计。ARM公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如ST、TI、NXP等,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如GPIO、USART(串口)
- 2023-06-271.中断处理
##项目目标是通过中断控制GPIO,实现rgb灯的亮灭; 中断基本概念:CPU在正常执行程序的过程中,遇到内部/外部的紧急事件需要处理,暂时中止当前程序执行,转而去处理紧急事件,处理完成后再返回被打断的程序继续执行中断能提高CPU效率(针对不频繁事件),能针对突发事件做出实时处理,实
- 2023-06-24国产MCU兆易GD32实现矩阵按键扫描
一、矩阵键盘 为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。使用8个io口来进行16个按键的控制读取,可以减小io口的使用,用4条I/O线作为行线,4条I/O线作为列线组成的键盘。矩阵键盘检测方法主
- 2023-04-06STM32中,对GPIO_Init(GPIOB, &GPIO_InitStructure)的理解
//笔者使用的硬件平台为STM32F103ZET6战舰版GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//指定GPIO-端口配置PB5->LED0GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//指定模式-推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_
- 2023-03-22STM32+DHT11读取温湿度
STM32+DHT11读取温湿度使用的是stm32f103c8t6的最小系统开发版。DHT11对时序要求很高,要注意延时函数的延时时间是否准确,延时函数使用的是正点原子的延时函数。通讯过程如
- 2023-01-11从自定义的库函数到STM32官方标准库
在上一节的基础上,进一步改写代码,再引入官方标注库函数。虽然官方标准库慢慢式微,有一些别的库可能会取代它,但是并不妨碍我们继续拿官方库来写代码,吸取里边好的写
- 2022-12-09stm32f407VET6 同一组IO的不同io口设置不同的模式(GPIOA 或 GPIOB 或 GPIOC、等)
1、使能这组GPIO外设的时钟2、定义GPIO口初始化结构体(不同模式的io口,设置不同的结构体),设置Pin_x的模式
- 2022-11-17基于CVxx GPIO 配置使用说明
PIN脚分为4或5组,其中183x为4组,182x,181x,180x为5组,对应gpio[0~4]或gpio[a~e]各组GPIO对应对应的基地址如下GPIO00x03020000GPIO10x03021000GPIO20x03022000GPIO
- 2022-11-02CH582开启睡眠模式(LowerPowerSleep)下低功耗测试
上图为手册中在睡眠模式下的功耗值,以此为参考依据。GPIOA_ModeCfg(GPIO_Pin_All,GPIO_ModeIN_PU);GPIOB_ModeCfg(GPIO_Pin_All,
- 2022-10-1003.寄存器
寄存器STMF10xx系统框架图存储器映射序号用途地址范围Block0Code0x00000000~0x1FFFFFFF(512MB)Block1SRAM0x20000000~0x3FFFFFFF(512MB)
- 2022-09-01寄存器操作
基本概念给一个内存空间分配好地址,然后这个特殊的内存空间叫寄存器stm32寄存器在stm32f10x.h头文件中实现寄存器映射#define__IOvolatile/*!<defines