自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 从单按键状态机思维扫描引申到4*4矩阵按键全键无冲扫描,一步一步教,超好理解,超好复现(STM32程序例子HAL库)

​ 单次只能对单个按键产生反应;多个按键按下就难以修改;并且代码耦合度较高,逻辑难以修改,对于添加长按,短按,双击的适合修改困难。

2024-04-26 11:35:25 864

原创 STM32——无源蜂鸣器多音阶输出对应频率表

音符和频率之间的关系基于音乐的十二平均律,这是一种音乐调谐系统,在十二平均律中,一个八度被分为12个等距的半音,每个半音的频率是前一个半音频率的12次方根2的倍数,这意味着每个八度的频率是前一个八度频率的两倍。"中央C"是钢琴上的一个特定的C音符,它位于钢琴键盘的大约中央位置,在音乐术语中,它通常被称为"C4",这是因为在大多数西方音乐的标准八度命名系统中,"中央C"是第4个C,从最低的C(C1)开始计数。如果使用无源蜂鸣器,建议比C3还低的音就不要取了,频率太低听不得;

2024-04-24 11:09:36 501

原创 [蓝桥杯嵌入式]hal库 stm32 (DMA串口1收发,采用空闲中断方法)

本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用。返回值:函数是否执行成功,成功:HAL_OK,失败:HAL_ERROR。再找到USART1_IRQHandler()函数,将里面改为下面的代码。然后左边找到串口1,选择异步通信,波特率看实际情况,我改为9600。其它的配置时钟配置,工程配置,调试配置就不赘述了。如果顺序弄错,串口1的引脚就会是PC4,PC5;先找到引脚PA9,PA10,打开串口1接收。首先,在main.h中定义好结构体。

2024-03-30 14:43:37 650

原创 [蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)

首先是CUBEMX配置基础配置掠过。

2024-03-25 14:08:43 1772 1

原创 【RTOS学习】4、动静态创建任务

首先要知道,在动态创建任务的函数中的最后一个参数,就是记录这个任务的信息的结构体,如果需要删除某个任务,那么这个参数就不能为空。这里我们通过全局查找去找到这个函数,然后在Task.c的vTaskStartScheduler()函数中看到以下。因为这里使用静态创建的函数,所以需要传入自定义栈和任务控制块(TCB),而不是之前动态分配的内存了。代表,当你开启了这个宏定义后,需要使用这个函数,但是我们没有。(传入NULL即为自杀)主函数中,创建任务函数1的优先级从1改为2.编译后模拟运行,继续如上添加三个变量。

2024-03-21 23:26:29 964 1

原创 【RTOS学习】3、第一个RTOS程序

关键函数:xTaskCreate();

2024-03-21 23:14:39 207 1

原创 【RTOS学习】2、工程精简和修改官方源码增加串口打印

【韦东山freeRTOS快速入门视频教程】 https://www.bilibili.com/video/BV1844y1g7ud/?到这里后,代码还需要进行一些删除,如果一个一个讲出来,非常的长,建议参考下面链接中韦东山老师的视频。按照下面的目录,删除其它文件。这时候点击编译应该一堆bug。关于工程精简请查看链接中的。将上面视频看完即可。

2024-03-21 23:12:54 196 1

原创 【RTOS学习】1、下载FREERTOS官方源码

谷歌搜索freertos找到官网并且进入或者点开下面连接进入官网后点击下载FreeRTOS点击第一个,其中包含了各种示范代码第二个无示范代码,新手不推荐,这里我下载的第一个。

2024-03-21 23:09:17 302 1

原创 太阳高度角与方位角计算(c语言)

原理不多说,直接给出代码

2024-03-21 20:17:34 148 1

原创 # [蓝桥杯嵌入式]hal库 stm32 USART串口不定长收发通信(中断+计时)

使用蓝桥杯嵌入式平台STM32G431RB芯片最新板进行测试实现了串口阻塞发送,和中断接收。

2024-03-17 16:07:32 841 1

原创 [蓝桥杯嵌入式]hal库 stm32 ADC多通道指定通道采集解决办法,采用单通道,非扫描,非连续

网上做法大部分都是非DMA:单次转换+扫描模式+不连续转换+间断模式。然后在代码里面按分配的顺序依次扫描DMA:单次转换+扫描模式+连续转换。然后在代码里面按分配的顺序依次扫描。

2024-03-07 18:34:10 659 1

原创 【蓝桥杯嵌入式】MCP4017可编程电阻学习(iic通信)

由Total(Rab)可知这个可编程电阻总电阻为100k欧(当寄存器为0x7F时达到最大电阻)。由Step(Rs),可知相当于寄存器每增加一个数,电阻增加787.402欧。

2024-03-06 20:18:42 541 1

原创 stm32的hal库软件模拟iic通信学习(以M24C02/AT24C02为例) 从数据手册到配置到代码看这一个就够啦

关于iic的概念我就不多说了,csdn很多资料。我将讲述英语不会的情况下如何查看英文的手册从原理到代码一步一步记录如何与芯片进行通信。在阅读本篇文章时,请去学习iic的通信规范,不然比较难懂。

2024-03-05 12:54:10 1303

原创 在stm32的HAL工程中引入新的代码文件,使用keil且创建新的文件夹

(如果是创建空文件就跟着创建,如果是现有文件,那就直接粘贴进来,名字无所谓,后缀名要.c和,h)然后用keil打开工程文件,在左边的的工程文件管理中右键工程,然后点击add group,随后工程文件中会出现一个New Group的新文件夹。打开工程文件,在工程文件中创建一个文件,文件名字随便取,我在MDK-ARM中创建,起名myDrivers,如下图。这时候编译是会报错的,因为工程的编译路径中没有这个文件夹,所以我们要添加这个文件夹到编译路径中,双击myiic.c的工程文件进入,在文件的顶部输入。

2024-03-04 22:04:31 291 1

原创 stm32的不同gpio模式,以及开漏输出的特殊用法

​ 在推挽输出模式下,理论上来讲,无论是“上拉”、“下拉”还是“无上拉下拉”,都可以输出高电平和低电平,但是,无上拉下拉时引脚悬空,在输出低电平时可能会出现不正常现象,所以建议上拉或者下拉。​ GPIO口被用作第二功能时的配置情况,比如pwm输出,pwm输入,ad输出,iis输出,硬件spi,硬件iic,外部时钟输出,外部时钟输入等都会启动复用模式。​ GPIO的配置种类有8种之多:模拟输入、浮空输入、下拉输入、上拉输入、 开漏输出、推挽输出、 复用开漏输出、 复用推挽输出。

2024-03-04 21:05:17 285 1

原创 C语言格式化输出小汇总

"%d":以十进制整数形式输出。"%x":以十六进制整数形式输出(小写字母)。"%X":以十六进制整数形式输出(大写字母)。"%o":以八进制整数形式输出。

2024-03-03 21:08:21 815

原创 [蓝桥杯嵌入式]hal库 stm32 独立按键单击、双击、长按识别

本文章以蓝桥杯嵌入式开发板为使用案列,使用stm32g431rbt6芯片,使用PB0,PB1,PB2,PA0作为独立按键的输入。3、在需要按键功能的代码文件中引用按键结构体变量Key_Str key[4],这里我在main.c中引用。代码使用前提要求:需要一个10ms调用的定时器(软件定时器,硬件定时器皆可,精度无要求)2、设置一个10ms调用的中断,这里我使用的1ms定时器4中断配合10ms的计数。使用状态机的方式对4个独立按键进行单机,双击以及长按的识别。以上代码实现了按键的单击,双击,以及长按。

2024-02-20 23:57:45 459

原创 [蓝桥杯嵌入式]hal库 stm32 竞赛训练版,LED的使用HAL库

GPIO_ReadPin、GPIO_WritePin分别用于读取和设置GPIO电平。我将讲述如何在2023年度蓝桥杯嵌入式开发竞赛的主控板上,使用STM32CubeMX生成的HAL库函数,实现单个和多个LED灯的控制。当PD2为低电平即停止位,锁止,关闭同步芯片对应引脚状态,保持当前led状态直到下一次解除锁止。当PD2为高电平即有效位,解除锁止,同步芯片对应引脚状态。LED4对应GPIOD的PD11。LED5对应GPIOD的PD12。LED6对应GPIOD的PD13。LED7对应GPIOD的PD14。

2024-02-15 22:59:42 409 1

原创 stm32f1系列标准库使用串口3进行DMA收消息时会死机的问题解决

现象:一旦接收到数据,便会一直进入串口3的中断回调handle函数(我使用的空闲中断,理论上不应该这样),主函数一条都不会执行。如上,一直在中断里面循环,直到我的看门狗生效复位(喂狗函数在主程序,所以我推测循环进入中断后根本不会执行主函数)当我设置一个temp读取串口3的这两个寄存器后,串口回调就正常了。图中的printf就是用来打印函数步骤,当收到一个1,串口界面就会显示如下r。当我尝试使用这个芯片的串口3进行dma接收的时候发现一个问题。1、串口初始化以及中断初始化。3、串口3DMA发送。

2024-02-04 21:53:36 390 1

原创 树莓派4B设置多个默认连接的WIFI

文件配置 WiFi 的 SSID 和密码,这样树莓派启动后会自行读取 wpa_supplicant.conf 配置文件连接 WiFi 设备。目录下新建 wpa_supplicant.conf 文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf 文件。操作方法简单:将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的。打开配置文件后按照下面参考格式填入内容。可以在未启动树莓派的状态下单独修改。

2024-01-15 15:10:30 861

原创 解决无法调整树莓派4B的VNC的分辨率问题

如果不加,树莓派可能仍会“自作聪明”的检测HDMI设备的分辨率,结果造成我们设置的分辨率无效。4B,一直被一个问题困扰:刚装上系统时,无屏幕前提下,用VNC Viewer连接,无论怎么改,都无法修改成功。或者:打开vncserver来通过开启一个端口实现(这个其实可以,但是我觉得麻烦),都是失败。表示命令树莓派不检测HDMI设备的任何信息,只按照我们指定的分辨率输出。代表的是当前要输出的分辨率模式,可修改为其它模式,具体参考文章底部。在打开的界面中,找到下面的代码块,你得确保你的vnc服务是打开的。

2024-01-12 23:29:41 1037

原创 解决树莓派4b使用vnc远程桌面连接时遇到Cannot currently show the desktop问题

在较新的机器与系统上(树莓派4b+2021年5月份之后的32位桌面版系统),树莓派检测没插显示器,就关闭图像输出,VNC自然就获取不到桌面图像了。

2024-01-07 21:26:23 808 1

原创 关于树莓派官方64位桌面系统安装WiringPi库出现错误的问题

依次输入以上命令即可。

2024-01-05 15:57:21 495 4

转载 树莓派4B更换国内APT下载源(阿里源)

树莓派4B更换国内APT源

2024-01-05 11:38:38 352 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除