单片机之路
文章平均质量分 87
单片机学习之路,点滴总结
Awen_y
一级点灯大师
展开
-
GD32/STM32启动过程
对于嵌入式设备在设备上电后,所有的一切都需要由开发者来设置,这里处理器是没有堆栈,没有中断,更没有外围设备,这些工作是需要软件来指定的,而且不同的CPU类型、不同大小的内存和不同种类的外设,其初始化工作都是不同的。本文将以STMF4为例进行讲解其启动过程。原创 2024-09-12 22:30:23 · 985 阅读 · 0 评论 -
嵌入式_基于STM32F4标准库的Flash读写操作
在STM32芯片内有一个Flash存储器断电后数据不会丢失,所以Flash中经常存储一些关键数据,例如:运行的程序、属性文件、密钥、累计运行时间、故障日志等,所以Falsh读写操作非常重要。原创 2023-12-07 23:16:16 · 4213 阅读 · 3 评论 -
GD32_ADC采样+DMA多通道扫描传输
所使用的MCU 片上集成了 12 位逐次逼近式模数转换器模块(ADC),可以采样来自于 16 个外部通道和 2 个内部通道上的模拟信号。这 18 个 ADC 采样通道都支持多种运行模式,采样转换后,转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。我们主要介绍其多通道扫描转换和DMA传输功能,在多个通道轮询采集ad数据,并使用DMA分别保存各个数据值,其能大大提高ADC的工作效率。以下为ADC 模块框图:原创 2023-11-15 23:35:52 · 4261 阅读 · 1 评论 -
GD32_定时器输入捕获波形频率
之前项目上用到一个使用定时器捕获输入采集风扇波形频率得到风扇转速的模块,作为笔记简单记录以下当时的逻辑结构和遇到的问题,有需要参考源码、有疑问或需要提供帮助的可以留言告知原创 2023-10-25 22:08:00 · 2000 阅读 · 4 评论 -
基于STM32_DHT11单总线温湿度传感器驱动
趁热打铁,接上篇DS18B20的介绍再出一篇关于单总线传感器DHT11的介绍,相比之下,DHT11的时序和操作更简单易懂。原创 2023-10-14 18:30:05 · 1332 阅读 · 0 评论 -
基于STM32_DS18B20单总线传感器驱动
本文以一款典型的单总线传感器及其驱动——DS18B20为例,简单对1-Wire总线接口的传感器做个示例讲解,该项目基于硬件平台STM32F407,使用标准库本完成。原创 2023-10-12 23:02:09 · 3385 阅读 · 0 评论 -
GD32F103*固件库移植μCOS-Ⅲ详细教程与解析(最终版本已上传,可下载)
μcos-III是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特点:公开源代码、可移植性、可固化、可裁剪、多任务、占先式,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。在使用GD32F103单片机项目使用过μcos-III,这里作为一个基础教学版简单记录一下移植过程,欢迎大佬指正!!!!最终成果放在此处,欢迎大家下载!原创 2023-08-05 16:51:27 · 651 阅读 · 0 评论 -
嵌入式_GD32使用宏开关进行Debug串口打印调试
串口Debug是一种将数据通过串口发送的方法。通过使用printf函数,我们可以将需要发送的数据格式化为字符串,并通过串口发送出去。在C语言中,通常使用串口发送数据的函数为printf函数,但是需要将标准输出重定向到串口。原创 2023-08-03 15:46:31 · 1586 阅读 · 1 评论 -
嵌入式_GD32看门狗配置
使用GD3单片机时,为了提供了更高的安全性、时间的精确性和使用的灵活性。独立看门狗定时器可用来检测和解决由软件错误引起的故障;在此简单记录一下GD32独立看门狗的配置过程和注意事项。原创 2023-07-26 21:20:14 · 1868 阅读 · 0 评论 -
串口发送数据第一个字节丢失......
STM32使用如下串口发送函数发送一帧数据,出现首字节丢失现象…原创 2023-05-25 22:53:59 · 858 阅读 · 0 评论 -
嵌入式_基于GD32F10x硬件IIC固件库的分析
项目中使用2组硬件I2C使用多主模式实现16个设备间的通信,从新梳理简单记录一下对I2C的理解和注意事项原创 2023-05-23 20:14:00 · 1262 阅读 · 0 评论 -
嵌入式_一种非常简单实用的基于GD32的裸机程序框架
搜索了一下关于GD或ST裸机程序的问题,网上有非常多也非常的例子,但是针对裸机开发的程序框架却比较少,这里简单整理了一下在项目中使用过的一种比较小巧便携的裸机程序框架(确切点说算不上框架,只能说一种写法)。原创 2023-07-10 21:11:06 · 1311 阅读 · 3 评论 -
# 嵌入式_I2C总线温度传感器驱动(以CT75为例)
注:本项目基于GD32F03RET6硬件平台, 使用标准库GD32F10x_Firmware_Library_V1.0.0(提示:此库坑多、慎用!个人理解就是支持I2C总线传输数据的一种传感器,一般是作为从机。MCU可以通过I2C总线对温度传感器进行读写配置或读取温度数据等。几乎所有总线类的温度芯片操作方式几乎都一样,只需要根据手册知道其地址序列、寄存器地址、读写步骤和计算方式即可。值得注意的是:无论使用软件IIC还是硬件IIC,都需要外部上拉,使用之前记得先测一下上拉和通断,以免硬件挖坑。原创 2023-05-15 19:41:45 · 1663 阅读 · 0 评论 -
在MDK调试STM32出现“could not stop cortex-m device”软件解决办法
在MDK调试STM32出现“could not stop cortex-m device ...”软件解决办法原创 2023-05-10 14:15:53 · 9450 阅读 · 0 评论 -
嵌入式_常见延时方式的差异与选择(for循环延时、定时器延时、汇编延时....)
这里整理几种常见的延时方式,并做简单测试供大家参考,如果有什么不对的地方,欢迎指正,共同探讨。原创 2023-04-23 10:56:28 · 4239 阅读 · 0 评论 -
GD32F10x外部晶振配置108MHz系统时钟
如有错误,欢迎指正,原创不易,转载留名!原创 2023-04-04 21:26:53 · 1655 阅读 · 0 评论 -
对位带操作的理解和应用
M3内核中,有两个区中实现了位带。其中一个是 SRAM 区的最低 1MB 范围,第二个则是片内外设区的最低 1MB 范围。这两个区中的地址除了可以像普通的 RAM 一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个 32 位的字。当你通过位带别名区访问这些字时,就可以达到访问原始比特的目的。原创 2023-04-02 17:21:39 · 798 阅读 · 0 评论 -
串口DMA接收与发送不定长数据
项目中使用串口接收数据时需要单个字节进行中断接收,再判断字节放入缓冲区等待处理,这种方式一般情况无伤大雅,但在传输数据较多且CPU资源紧张时候,这种方式就显得力不从心,经过参考个人实现了一种使用串口DMA接收和发送不定长数据的方式,并且经过项目检验。因此作为笔记简单记录以下个人总结,方便日后参考原创 2023-03-25 22:13:57 · 2036 阅读 · 0 评论 -
GD32_时钟配置解析
本文以GD32F303型号为基础,依照标准库GD32F30x_Firmware_Library_V2.1.5为例,作为笔记简单记录个人对其时钟配置的理解,后续会持续更新本篇笔记内容。原创 2023-03-19 16:52:46 · 10678 阅读 · 6 评论 -
STM32/GD32同类别芯片编号标识字段释义
这里依意法半导体公司32位单片机GD32F103CBT6 为例,解读芯片编号标识的含义。原创 2023-03-18 20:15:23 · 2104 阅读 · 0 评论 -
状态机按键消抖
最近研究了一下状态机消抖,不占用MCU资源的非阻塞消抖方式。原创 2023-03-15 23:27:46 · 2063 阅读 · 0 评论 -
基于STM32的软件IIC实现
基于STM32F407 标准库的软件IIC实现方式,原创 2023-03-10 23:14:08 · 2255 阅读 · 2 评论 -
一种可存取任意类型数据的环形FIFO
Head和Tail相连的一种可以循环存数组的结构,存数据前会判断当前FIFO数据指针是否到Tail,如果到Tail,则下一个数据会判断Head是否为空,如果为空,则将数据存到Head中。如有错误,欢迎指正,原创不易,转载留名!原创 2023-03-02 23:36:48 · 1559 阅读 · 2 评论 -
便携的GPIO初始化
一般的STM32项目的GPIO是跟着所使用的外设配置文件一起,包含在Init函数中的,例如Init_Uart(),Init_Adc()等,查找GPIO的配置属性都要找半天,完全可以不这样搞,把要用的GPIO在一个文件中配置完整,再统一初始化,省时省力,方便删改查找。提示:以下是本篇文章正文内容,下面案例可供参考学习的一点心得,主要是查找方便,知道GPIO号即可,不用一个一个问价去翻找是在哪个外设中使用的。如有错误,欢迎指正,原创不易,转载留名!原创 2023-03-02 21:29:38 · 777 阅读 · 0 评论 -
Systick_Handler B.卡死处理方法
Systick_Handler B.卡死处理方法注:鄙人在学习国产GD32芯片和STM32芯片做嵌入式时候出现过单片机卡死在*.s启动文件Systick_Handler B.处现做系列总结文章目录Systick_Handler B.卡死处理方法1.中断开启未处理!2.引入C/C++代码而未作配置处理总结注:主要总结国产GD32和STM32单片机卡死在*.s启动文件Systick Handler B.处几种情况问题描述:没什么问题,卡死此处而已!!!1.中断开启未处理!原创 2021-03-06 21:51:27 · 6436 阅读 · 0 评论