- 博客(33)
- 收藏
- 关注
原创 栈顶指针(Stack Pointer, SP)
在 MCU/CPU 里,栈(Stack)是一块用来存放临时数据的内存区域。函数调用时保存返回地址保存/恢复局部变量保存/恢复寄存器内容栈顶指针 SP = 一个寄存器,指向当前栈的最顶端。作用:保证函数调用、中断处理等能安全保存/恢复数据。在嵌入式 MCU(如 ARM Cortex-M)中:初始 SP 在 中断向量表的第 0 项定义上电后硬件自动加载栈空间通常位于 SRAM 的最高地址并向下增长。
2025-08-26 10:10:29
556
原创 Flash、ROM 和 SRAM
在嵌入式里,Flash、ROM、SRAM 是不同的物理存储器件/单元,虽然它们在中被,表现为一个连续的地址空间,但它们背后的物理特性完全不同。
2025-08-26 08:56:40
420
原创 GD32中 端口位操作寄存器 和 位带操作 区别分析
特性端口位操作寄存器 (GPIOx_BOP)位带操作 (Bit-Banding)实现层级外设级,是GD32芯片厂商在GPIO外设中设计的专用寄存器。内核级,是ARM Cortex-M内核提供的一项通用内存映射技术。操作对象仅针对GPIO的输出控制。针对整个位带别名区的所有地址,包括SRAM和外设寄存器的任何一位。原理通过写入特定的寄存器位(BOP0-15置位,BOP16-31复位)来控制引脚。通过访问一个特定的别名地址来间接访问原始地址的某一位。地址。
2025-08-25 14:02:13
229
原创 ULN2003G-P16-R 芯片使用
ULN2003G-P16-R 是一种 达林顿管阵列驱动芯片,内部集成了 7 路达林顿管对,相当于 7 个“ULN2003 单元”放在一起。它常用于单片机(如 STM32、Arduino)控制 继电器、电机、数码管、LED 阵列 等需要较大电流的负载。
2025-08-25 09:58:27
230
原创 MOSFET(Metal-Oxide-Semiconductor Field Effect Transistor,金属氧化物半导体场效应管)
P-MOS 是靠“拉低栅极”来导通的开关器件,常用于高边开关控制电源。
2025-08-25 09:34:38
487
原创 解决 git 配置 gitee SSH 后仍然弹出 Git Credential Manager
确保你的本地仓库使用的是 SSH 协议 的远程地址(格式如 git@gitee.com:username/repo.git),而不是 HTTPS 地址(如 https://gitee.com/username/repo.git)。(将 username/repo.git 替换为你的仓库路径)如果显示的是 HTTPS 地址,需要修改为 SSH 地址。
2025-08-19 11:11:34
362
原创 GD32 HXTAL(外部高速晶振)旁路模式(Bypass Mode)的开启与关闭
无源晶振需要外部负载电容和 MCU 内部的反馈电路共同工作,旁路模式会绕过这一机制,导致晶振无法正常振荡。旁路模式跳过内部振荡电路,直接将外部时钟信号输入 MCU,适合对时钟精度或同步性要求高的场景。使用 外部有源时钟源(如其他芯片输出的方波、时钟发生器、FPGA 提供的时钟)。外部时钟信号直接接入 MCU 的 XTAL1 引脚,XTAL2 引脚悬空或接地。直接输入高频信号(如 8MHz 方波),无需 MCU 内部振荡电路参与。需要 MCU 内部振荡电路驱动晶振起振,产生稳定的正弦波时钟信号。
2025-08-18 18:25:06
404
原创 GD32 基于 458 通信实现 printf
MicroLIB 提供了轻量级的 printf 实现,可以直接重定向到串口(USART),而标准库默认依赖 半主机模式(Semihosting)(需要调试器支持,不适合实际硬件运行)。打开"Options for Target"对话框。勾选"Use MicroLIB"选择"Target"选项卡。
2025-08-18 13:26:17
140
原创 [FreeRTOS] ☞ vTaskDelay 函数
在 FreeRTOS 中,vTaskDelay 函数用于使当前任务进入阻塞状态,直到指定的时间段过去。vTaskDelay 的参数以“滴答数”(tick)为单位,滴答数由系统时钟决定。
2024-09-07 14:36:46
813
原创 七、STM32F429IGT6 DMA
DMA,即Direct Memory Access(直接存储区访问),是一种能够实现在外设寄存器与存储器之间或存储器与存储器之间高速传输数据的方法。DMA传输数据时,不需要任何CPU操作控制。
2024-08-13 20:42:35
1152
原创 六、STM32F429IGT6 串口通讯
TX:发送数据输出引脚RX:接收数据输入引脚SW_RX:数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引脚nRTS:请求发送,n表示低电平有效;nCTS:允许发送,n表示低电平有效。相当于一个握手的过程SCLK:发送器时钟输出引脚,仅适用于同步模式注: 以上引脚,通常仅使用TX和RXSTM32F429IGT6芯片的USART引脚。
2024-08-12 21:52:15
2184
原创 五、STM32F429IGT6 按键输入&EXTI
key.c// 开启 GPIO 外设时钟// 开启 EXTI 时钟/* 1. 初始化连接到 EXTI 的 KEY */// 输入模式// 确保按键未按下时,GPIO引脚能保持稳定的电平状态。/* 连接 EXTI 中断源 到 key0、key1 引脚 *//* 2. 初始化 EXTI */// 中断模式// 下降沿触发// 使能/* 3. 初始化 NVIC,用于处理中断 */// 配置中断优先级分组// 主优先级// 子优先级。
2024-08-11 21:32:34
387
原创 (二)STM32 中断
NVIC结构体定义如下,位于固件库core_cm4.h文件中在配置中断时,我们通常只使用ISER、ICER和IP这三个寄存器,ISER用于使能中断,ICER用于失能中断,IP用于设置中断优先级。
2024-08-11 19:26:06
398
原创 四、STM32F429IGT6 SysTick(系统嘀嗒定时器)
在 STM32中,SysTick 是一个24位的递减定时器,由 ARM Cortex-M 内核提供。主要用于提供标准的系统时钟、实现简单的延时功能。
2024-08-11 15:18:23
940
原创 三、STM32F429IGT6 位带操作
其中,AliasAddr表示位带别名区地址,A表示我们要操作的位所在寄存器的地址,n为位号。其中,addr表示要操作的位所在寄存器的地址,bitnum表示位号,即寄存器中的第几位。目标:通过位带操作控制LED。
2024-08-11 13:34:54
1117
原创 (一)STM32 寄存器
其中地址0x4000 0000称为外设基地址,也是APB1总线的基地址。在STM32中,通过基地址+偏移地址来确定具体的寄存器地址。例:控制GPIOH10输出高/低电平。GPIOH寄存器基地址。
2024-08-10 22:45:53
523
原创 Ubuntu中开机后弹出终端并在终端中运行自定义程序的方法
2. 在终端中输入以授予用户权限。3. 在终端中输入以启动Startup Applications软件,若提示找不到,则按提示安装即可。4. 在Startup Applications中配置自定义程序的自启动。
2023-12-12 23:24:34
1528
原创 解决STM32CubeIDE通过ST Link V2下载程序报错:Error: failed to erase memory Encountered Error when opening
Error: failed to erase memoryEncountered Error when opening C:\ST\STM32CubeIDE_1.12.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.600.202301161003\tools\bin\STM32_Programmer_CLI.exeError in STM32CubeProgrammer
2023-06-19 15:53:42
5158
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅