Car12
嵌入式开发,爱好者
展开
-
论在中断中的标志变量使用volatile的重要性分析
在使用STM32进行串口中断发送数据时,由于send_busy标志未及时写入内存,导致数据发送异常。通过分析,发现问题的根源在于编译器对变量的优化行为。volatile关键字用于告知编译器,该变量的值可能被外部因素(如硬件、中断等)改变,因此每次访问时都必须从内存中读取或写入,避免编译器优化导致的错误。与非volatile变量不同,volatile变量在汇编层面表现为每次访问都直接操作内存,确保数据的实时性和正确性。通过使用volatile关键字,可以有效解决类似问题,确保程序在多线程或中断环境下的正确执行原创 2025-05-15 18:05:13 · 66 阅读 · 0 评论 -
RT Thread驱动框架分析--硬件定时器(hwtimer)分析
基于N32+RTthread硬件定时器驱动框架分析原创 2025-01-25 15:07:21 · 130 阅读 · 0 评论 -
N32的位带操作
gpio位带操作原创 2025-01-17 20:14:23 · 57 阅读 · 0 评论 -
N32L40x基于串口的IAP升级升级速度2Mbps+上位机工具
/这里的0x50000就是bootloader使用的空间,APP分布于bootloader之后的空间。0xaa,0xaa 数据id2个字节(高位,低位),数据错误代码(1个字节), 数据*N 0xaa,0xaa。0xaa,0xaa 数据ID 2个字节(高位,低位) 数据*N 0xaa,0xaa ,异或检验。bootloader给他分配了20K=0x50000;这里实际使用了7K多。APP下发数据包结构;累计 2+2+N+2+1 个字节,此文件不需要修改,作为lib使用。在main函数入口添加。原创 2024-09-30 15:16:31 · 603 阅读 · 0 评论 -
arm mcu STM32跳转到系统厂家的dfu bootloader
【代码】arm mcu STM32跳转到系统厂家的dfu bootloader。原创 2024-09-28 22:47:20 · 206 阅读 · 0 评论 -
N32G430学习笔记27---使用定时器的输入捕获模式(pwm输入模式)测量pwm占空比和频率
【代码】N32G430学习笔记27---使用定时器的输入捕获模式(pwm输入模式)测量pwm占空比和频率。原创 2023-04-11 22:45:46 · 648 阅读 · 0 评论 -
N32G430学习笔记26---spi flash W25Q128 读写测试
【代码】N32G430学习笔记26---spi flash W25Q128 读写测试。原创 2023-04-11 22:03:48 · 585 阅读 · 0 评论 -
N32G430学习笔记25---spi dma 方式接收,发送数据 【查询-中断】
32。原创 2023-04-11 22:02:10 · 535 阅读 · 0 评论 -
N32G430学习笔记24--使用spi1使用dma发送数据,中断收数据,spi2dma发送数据,中断收数据
使用的全双工模式发送接收数据。原创 2023-04-11 21:41:50 · 707 阅读 · 0 评论 -
N32G430学习笔记23---spi1使用dma发送数据,中断收数据,spi2使用中断收数据,轮训发送数据
spi1使用dma发送数据,中断收数据,spi2使用中断收数据,轮训发送数据。原创 2023-04-11 19:33:19 · 419 阅读 · 0 评论 -
N32G430学习笔记22---SPI1 DMA发送数据,SPI2 中断接收数据---单工模式
【代码】N32G430学习笔记22---SPI1 DMA发送数据,SPI2 中断接收数据---单工模式。原创 2023-04-11 19:22:13 · 245 阅读 · 0 评论 -
N32G430学习笔记20--- spi外设单工模式下spi1中断发送和spi2中断数据接收
SPI 软件NSS 必须设置NSS电平为高。主机的MOSI 接丛机 的MISO。主机clk 和丛机clk相接。原创 2023-04-11 16:28:22 · 1106 阅读 · 0 评论 -
N32G430学习笔记19-hall霍尔传感器数据采集
【代码】N32G430学习笔记19-hall霍尔传感器数据采集。原创 2023-04-11 15:56:17 · 1041 阅读 · 0 评论 -
N32G430学习笔记19-can过滤器的学习使用
文章末尾有学习代码工程下载。原创 2023-04-05 10:37:14 · 876 阅读 · 0 评论 -
AT24CXX 的读写方法
在嵌入式设计中,E2PROM存储芯片常被应用于需要掉电存储,且容量不大的场合。,因此,更适合于数据量存储不大,且更需要频率擦写的应用场景。原创 2023-03-24 15:29:53 · 669 阅读 · 0 评论 -
【开源代码】-基于国民N32G43x系列MCU使用JLINK的开发组件工具-RTTViewer示例代码分析
/检查缓冲区至少有一个数据可读,>0个返回 1 ==0 返回0。RTT Viewer不能打印出float类型的数据,要想打印浮点数,最简单的办法就是将浮点型数据转为字符串。//至少等待一个字符后才返回 死等。//这里就是把之前的空格字符读取走。这个例子主要是测试数据输入和字符串输出。原创 2022-10-20 19:57:33 · 727 阅读 · 0 评论 -
【开源代码】-基于国民N32G43x系列MCU使用JLINK的开发组件工具-J-Scope/变量跟踪/图形显示
选着的芯片是。原创 2022-10-20 20:43:19 · 729 阅读 · 0 评论 -
【开源代码】-基于国民N32G43x系列MCU使用JLINK的开发组件工具-RTTViewer/logger/Client/调试打印
SEGGER-RTTViewer 打印调试信息方法。原创 2022-10-20 18:13:01 · 1058 阅读 · 0 评论 -
N32G430学习笔记18-基于串口的IAP程序升级
N32F430C8L6 ROM 地址范围ROM 地址范围: 0x800 0000~0x800 FFFF 合计64K,扇区大小 2048Byte = 2kfalsh 空间分配设置。原创 2022-10-05 21:33:52 · 1044 阅读 · 0 评论 -
N32G430学习笔记17-flash操作bsp
修改一下启动文件里边堆的大小,默认是0x300 = 768Byte ,修改为0x1000 = 4096=4K。N32G430系列最大64KB=32个扇区*2K。N32G430C8L7的配置。原创 2022-10-05 21:33:09 · 1082 阅读 · 0 评论 -
N32G430学习笔记16-GPIO模拟串口UART
通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。数据通讯格式:发送0x55 奇校验波形空闲位:UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平,表示当前线路上没有数据传输。起始位:每开始一次通信时发送方先发出一个逻辑”0”的信号(低电平),表示传输字符的开始。原创 2022-10-03 20:36:48 · 871 阅读 · 0 评论 -
N32G430学习笔记15-使用普通定时器实现pwm输出
可以使用按键1增加占空比,按键2减少占空比。原创 2022-10-02 15:24:40 · 874 阅读 · 2 评论 -
N32G430学习笔记14-tim1 pwm输出含有死区控制
本次使用 PA8 PA9 PA10 作为pwm 3路输出,PB13 PB 14 PB15 为pwm互补输出,配置模式和复用功能如上图。使能时钟(定时器,pwm gpio ,刹车gpio)使能外设(定时器和gpio, 刹车gpio)使用刹车功能时,设置相应的控制位时会。使能pwm输出-设置刹车主输出。定时器的基本参数初始化。原创 2022-10-02 15:02:00 · 1219 阅读 · 0 评论 -
N32G430学习笔记13-位带操作
经过膨胀之后的位带别名区地址为:0x2200_0000 ~ 0x23FF_FFFF,大小为 32MB。SRAM 位带区地址位:0x2000_0000 ~ 0x200F_FFFF,大小为 1MB。N32G430单片机包含4组GPIO 分别是 A,B,C,D。原创 2022-10-02 10:44:47 · 837 阅读 · 0 评论 -
N32G430学习笔记12-定时器的基本使用
定时器的基本使用原创 2022-10-02 09:26:28 · 986 阅读 · 0 评论 -
N32G430学习笔记11- systick使用函数-延时函数
N32学习笔记11- systick使用函数-延时回调函数-延时函数原创 2022-10-01 21:11:26 · 1164 阅读 · 0 评论 -
N32G430学习笔记10-经过封装的dma收发函数
经过封装的dma+uart收发函数原创 2022-10-01 13:04:58 · 421 阅读 · 0 评论 -
N32G430学习笔记9-串口dma方式收发数据+printf的代码版本
串口dma方式收发数据+printf的代码版本原创 2022-10-01 12:05:28 · 1852 阅读 · 0 评论 -
N32G430学习笔记8-使用空闲+中断的方式接收数据
空闲中断和接收中断方式接收数据原创 2022-10-01 11:33:37 · 888 阅读 · 0 评论 -
N32G430学习笔记7-串口实现printf重定向
串口使用和重定向原创 2022-10-01 10:36:39 · 374 阅读 · 0 评论 -
N32G430学习笔记6-外设配置说明-浮空-推挽-复用-开漏的选择
MCU 外设配置说明-浮空-推挽-复用-开漏的选择原创 2022-10-01 10:23:06 · 324 阅读 · 0 评论 -
N32G430学习笔记5-GPIO和外部外设的复用映射关系
n32 和stm32不一样的地方,需要单独设置引脚复用关系原创 2022-10-01 10:16:17 · 751 阅读 · 0 评论 -
N32G430学习笔记4-时钟相关知识
从这里可以修改系统时钟和修改使用外部时钟还是内部时钟原创 2022-10-01 09:29:44 · 910 阅读 · 0 评论 -
N32G430学习笔记3-外部中断的使用
外部中断原创 2022-10-01 09:21:05 · 907 阅读 · 0 评论 -
N32G430学习笔记2-GPIO使用和关闭JTAG打开SW调试模式
define GPIO_MODE_OUT_PP ((uint32_t)0x00000001U) /*上拉 输出模式。#define GPIO_NO_PULL ((uint32_t)GPIO_PUPD0_0) /* 推挽。最后使用主函数调用 disable_jatg_open_sw 即可。MCU上电后默认是JTAG模式。这里复用为JTDI JTAG。原创 2022-10-01 09:07:14 · 2324 阅读 · 0 评论 -
N32G430学习笔记1-工程模板建立
工程模板建立。原创 2022-09-30 21:43:48 · 688 阅读 · 1 评论 -
N32G430学习笔记1-freertos 移植笔记
基于N32G430移植freertos原创 2022-09-29 21:38:10 · 868 阅读 · 0 评论