STM32 外设学习+项目实践
文章平均质量分 78
外设学习+项目实践
TianYaKe-天涯客
这个作者很懒,什么都没留下…
展开
-
188数码管轮询扫描
最近用到了188数码管,总结一下。188数码管,用5个IO,在不借助外部驱动芯片的情况下,可以点亮20个灯。188数码管广泛应用于电子烟、充电器、充电宝、DVD、高级音响、工业设备控制面板、医疗器械等多个领域,满足不同设备和场景的需求。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2024-07-17 20:06:35 · 240 阅读 · 0 评论 -
基于状态机的单片机编程(以按键状态转移为例)
在设计锂离子电池充电器时,对于以前的根据系统状态进行判断,置标志位的方法,会显得程序臃肿,且架构混乱,变量交错复杂,移植困难。所以结合实际项目,给出了一种基于状态机的编程方法。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2023-12-09 19:21:33 · 610 阅读 · 0 评论 -
IAP固件升级进阶(Qt上位机)
时隔近一年,再次接触IAP固件升级,这次修改了以前的一些bug,同时新增一些实用性的功能。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2024-06-17 22:25:43 · 466 阅读 · 0 评论 -
一阶RC低通滤波器(巴特沃斯滤波)
最近稍微研究了滤波器,想用模拟和数字的形式来简单理解一下,记录在这里。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com一阶滤波器(First-Order Filter)是滤波器的一种基本类型,其特点是在连续时间域或离散时间域中,滤波器的传递函数或差分方程具有一阶的形式。原创 2024-05-01 23:44:13 · 2370 阅读 · 0 评论 -
对单片机的一点理解
大一时学过一段时间的51单片机,后面就一直研究STM32和算法,最近工作搞51单片机有半年了,有一些自己的想法,跟公司的工程师也探讨了一些,结合聊天记录,写了这篇博客,希望对读者有帮助。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2024-04-10 00:39:57 · 2432 阅读 · 9 评论 -
一种ADC采样算法,中位值平均滤波+递推平均滤波
在实际AD采集场景中,会出现周期性变化和偶然脉冲波动干扰对AD采集的影响这里使用中位值平均滤波+递推平均滤波的结合参考前人写好的代码框架,也参考博主GuYH_下面这篇博客,在此基础上稍作修改,写出这篇博客,能应用于实际项目。常用ADC采样数字滤波算法最全汇总!!!以后有机会,搞个上位机对比几种算法的优劣。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2023-11-11 11:11:43 · 1073 阅读 · 0 评论 -
用静态顺序表方式实现的消息队列
之前挖的坑,今天可以实现了——“为了保证命令/数据一定能被执行,需要写一个消息队列(后面有空再写一下,给自己挖坑),当系统空闲时对命令/数据进行处理”。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2023-08-30 20:22:56 · 113 阅读 · 0 评论 -
手写最简单的单片机操作系统
本文参考自网上各大神的代码,在此基础上做修改,写了一份更适合本人开发的裸机操作系统代码。后面还有很多地方需要完善,读者如有想法可以一起探讨。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。原创 2023-08-27 12:51:44 · 716 阅读 · 0 评论 -
单片机GPIO口模拟串口接收
做项目时,因为AT32F413CCU7串口不够用(已经用了3个串口),还有模块需要用到串口,所以做了一个模拟串口发送与接收的接口。用到的单片机外设有:GPIO定时器、外部中断。串口接收时不阻塞,但只存一帧数据(因为只对模块进行少量数据的读写,所以不做消息队列,用回调函数处理)串口发送时存在短暂阻塞(只发几帧数据,懒得去搞不阻塞的情况了)。因为是软件模拟,可能存在些许差错(波特率低时很少遇到,波特率高时需要调节定时器中断时间),所以拓展可以做字符串比较strncmp或者CRC校验。原创 2023-08-02 12:50:07 · 1224 阅读 · 1 评论 -
捕获多路PWM信号的周期、频率、占空比
缺点是不支持单片机GPIO同时触发高低电平的情况(相隔0.01us级别,会根据优先级而选择性屏蔽其他外部中断),而通过定时器同时输出的PWM信号可以检测。原创 2023-06-02 21:38:21 · 557 阅读 · 0 评论 -
按键检测:软件消抖+轮询检测+单双击及长按
在网上看到有用按键的软件消抖,但是基本上用的是delay函数,占用了CPU太多资源了,无法实现实时调用;高级一点的用定时器+外部中断的方式,但是无法实现单击、双击、长按功能。所以这里开发了一种功能,不占用太多CPU资源的同时实现轮询检测,且使用指针结构体,多个按键的情况下可复用性强、移植性强。本人使用的单片机芯片型号是STM32f103VET6有纰漏请指出,转载请说明。学习交流请发邮件1280253714@qq.com原创 2023-05-31 23:21:41 · 773 阅读 · 0 评论 -
通俗理解TIM定时器并简单使用
stm32有3种定时器,分别是基本定时器、通用定时器、高级定时器。原创 2023-03-09 23:47:23 · 6305 阅读 · 1 评论 -
嵌入式软件面试小结
本文章是我面试了几家公司后的嵌入式软件面试小结,也为我以后面试其他嵌入式岗位打下基础。分为C语言、ARM开发等。有纰漏请指出,转载请说明。学习交流请发邮件。原创 2023-03-06 18:17:44 · 315 阅读 · 0 评论 -
怎么操作SD卡——从底层到FAT文件系统
跟在FLASH上挂载FAT32文件系统一样,只需要底层提供给FatFs组件层一些数据操作的相关接口函数(放在bsp板级支持包里,即SD卡初始化、读状态、数据擦除、数据读写),然后修改diskio.c的具体内容,包括以下几个函数,以适应用户层对文件的操作。原创 2023-02-24 16:02:16 · 1041 阅读 · 0 评论 -
DMA传输的几个例子
DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候,CPU 可以干其他的事情,好像是多线程一样。原创 2023-02-22 19:06:41 · 915 阅读 · 0 评论 -
NVIC与中断控制
本文章部分代码参考自野火的例程,优先级部分参考自分外部中断、串口中断两部分串口部分在本栏目的另外一篇会重点讲解,此次只讲串口与EXTI类似的中断部分原创 2023-02-18 00:42:50 · 2023 阅读 · 0 评论 -
GPIO,三种方式点亮STM32的LED灯
用三种方法点亮LED灯,本质都是对寄存器写数据原创 2023-02-17 21:08:15 · 415 阅读 · 0 评论