STM32F103项目(HAL库)
文章平均质量分 70
小部分使用STMF03C8R6,后面的几乎是STM32F03ZET6的板子
知更鸟_z
(≖_≖ )
展开
-
stm32-F407-HAL-RFID_RC522-
RC522是一种非接触式读写卡芯片,广主要功能:支持ISO/IEC 14443 Type A和MIFARE通信协议。读写器模式中与ISO 14443A/MIFARE的通信距离高达50mm(取决于天线的长度和调谐)。支持ISO 14443 212kbit/s和424kbit/s的更高传输速率的通信。支持MIFARE Classic加密。提供64字节的发送和接收FIFO缓冲区。灵活的中断模式,可编程定时器。具备硬件掉电、软件掉电和发送器掉电3种节电模式。内置温度传感器,具备CRC和奇偶校验功能。原创 2024-09-28 22:35:48 · 582 阅读 · 0 评论 -
STM32——GPS模块(GY-NEO-6M)
NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备 制定的标准格式。目前业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。NMEA-0183协议采用ASCII码来传递GPS定位信息,我们称之为帧。原创 2024-08-23 20:01:14 · 1840 阅读 · 0 评论 -
keli5_报错 Cannot Load Device Description问题
之前创建的keli5的项目软件版本与当前的软件版本不同使其算法要重新选择。原创 2024-08-21 21:07:48 · 490 阅读 · 0 评论 -
stm32的UART重定向printf()
【代码】stm32的UART重定向printf()原创 2024-08-19 17:16:54 · 783 阅读 · 0 评论 -
STM32CubeIDE安装,更新。
我主页有安装包直接安装即可(不可有中文路径)原创 2024-07-05 22:54:41 · 362 阅读 · 0 评论 -
STM32-HAL-FATFS(文件系统)(没做完,stm32f103zet6(有大佬的可以在评论区说一下次板子为什么挂载失败了))
配置一个引脚用于此处,引脚设置为输出上拉。(检测是否有SD卡的引脚,但程序给自己写判断引脚电平)(只改了图选中的和选中的上面一个)(是支持英文,可以修改为支持中文但要看内存够不))(其中他的初始化的异常函数给注释,SD卡文件写了)配置了还要打开中断和DMA可在我的其他文章中看一样的。1-4配置SDIO(1-5配置FatFs。原创 2024-07-05 11:16:47 · 485 阅读 · 0 评论 -
STM32-HAL-SDIO-(sd卡的识别,整理后的版本)
选择数据传输引脚个数需改配置(图中改了两处,选中的和最后一个)原创 2024-07-02 09:14:53 · 581 阅读 · 0 评论 -
FatFs(文件系统)
FatFs 是用于小型嵌入式系统的通用 FAT/exFAT 文件系统模块。FatFs 模块是按照 ANSI C (C89) 编写的,并且与磁盘 I/O 层完全分离。因此,它独立于平台。它可以集成到资源有限的小型微控制器中,如8051、PIC、AVR、ARM、Z80、RX等。还提供用于微型微控制器的 Petit FatFs 模块。特征DOS/Windows 兼容 FAT/exFAT 文件系统。独立于平台。。程序代码和工作区的非常小。支持的各种ANSI/OEM 或 Unicode 格式的长文件名。原创 2024-07-01 10:15:04 · 1419 阅读 · 0 评论 -
STM32_实现双线程控制LED交替闪烁(UCOS)
函数的这种形式看起来像是来自μC/OS-III实时操作系统。这个函数用于创建一个任务,并且提供了更多的配置选项。下面是对每个参数的解释::指向任务控制块(TCB)的指针。TCB是操作系统用来管理任务的所有信息的结构,包括任务的当前状态、优先级、栈指针等。:任务的名称,通常是一个以null结尾的字符串,用于调试和识别任务。:任务函数的指针,这是任务执行的入口点。:传递给任务函数的参数的指针。:任务的优先级。在μC/OS-III中,优先级越高,任务越先被执行。:指向任务栈底的指针。任务栈是任务执行时用于存储局部原创 2024-06-28 09:10:13 · 611 阅读 · 0 评论 -
RT-Thread使用HAL库实现双线程控制LED交替闪烁
如何创建工程我的其他文中你面有可以进去查看。原创 2024-06-26 21:19:16 · 464 阅读 · 0 评论 -
STM32CubeMX与RT-Thread Studio协助使用(实现点亮LED)
如int main(void)处为它添加 __weak 即可。原创 2024-06-26 20:47:59 · 563 阅读 · 0 评论 -
STM32_hal_STM32Cude_实现RT—Thread系统
RT-Thread 操作系统重定义中断函数,为了避免重复定义的问题,在生成工程之前,需要在中断配置中,代码生成的选项中,取消选择三个中断函数(对应注释选项是取消如图选项 为取消状态。原创 2024-06-26 14:59:43 · 426 阅读 · 0 评论 -
STM32F103ZET6_移植uC/OS_HAL
如果使用GitHub要修改配置文件使用官网的官方已经修改好了导入时要注意路径是否正确有问题评论区见最终的项目可在资源中找到本项目重点讲解如何配置和导入ucos文件,创建任务的过程有点不严谨任务的创建后续会讲解。原创 2024-06-19 14:34:35 · 762 阅读 · 0 评论 -
ucos抢占式实时多任务操作系统 (RTOS)。
uCOS (也称为 μC/OS 或 Micro-Controller Operating System) 是一个开源的、可移植的、可裁剪的、抢占式实时多任务操作系统 (RTOS)。它最初由 Jean J. Labrosse 编写,并广泛用于嵌入式系统设计中。uCOS 是一个小型的 RTOS,非常适合那些需要实时性和多任务处理能力的嵌入式系统。:uCOS 是开源的,并且源代码是用 ANSI C 编写的,这意味着它可以很容易地移植到各种硬件平台上。原创 2024-06-17 10:41:33 · 1088 阅读 · 0 评论 -
STM32F103ZET6_HAL_CAN
按键上拉电阻。原创 2024-06-13 23:08:23 · 332 阅读 · 0 评论 -
stm32_HAL_CAN(特点:广播试,检测线路是否空,id有优先级)
CAN(Controller Area Network)接口是一种常用于嵌入式系统中的通信接口,尤其在汽车和工业领域。它由Robert Bosch GmbH在1986年开发,旨在提供一种可靠、高效、灵活的车载通信网络。CAN总线的主要/*** CAN 发送一组数据* 数据 长度*///发的结构体// 数据长度代码// 扩展标识符// 标识符类型为扩展帧 //标识符的长度// 远程传输请求为数据帧// 标准标识符 //can的ID。原创 2024-06-13 22:47:25 · 1211 阅读 · 0 评论 -
STM32——hal_SPI_(介绍)
SPI(串行外围设备接口)是一种高速的、全双工、同步的通信协议,通常用于短距离通信,尤其是在嵌入式系统中与各种外围设备进行通信。SPI接口由摩托罗拉公司推出,由于其简单和灵活的特性,它被广泛用于多种应用中,包括传感器、显示屏、存储器等。原创 2024-06-05 15:30:47 · 1635 阅读 · 0 评论 -
OLED—使用取模软件获得数据组-实现显示(2)
/使用次函数向oled.h写数组中的数据。取模软件是将我们提供的字符或图片转换为OLED可以识别的指令+图形数据。//设置OLED光标的位置。2调用oled库 看上一篇(有库函数解释和源文件)只要确定要显示的位置在将数据数组传入就可以显示。原创 2024-06-05 09:28:21 · 241 阅读 · 0 评论 -
OLED_讲解
OLED(有机发光二极管 Organic Light-Emitting Diode)是一种显示技术,它使用有机化合物材料作为发光层,当通过电流时,这些材料会发光。OLED显示器由多个单独可控制的OLED像素组成,每个像素都能够发出红、绿、蓝(RGB)中的一种颜色,或者通过不同的颜色组合来显示不同的颜色。SSD1306是一个单片CMOS OLED/PLED驱动芯片,用于驱动有机发光二极管(OLED)或聚合发光二极管(PLED)显示器。原创 2024-06-04 21:49:10 · 1009 阅读 · 0 评论 -
STM32_HAL_I2C_串行接口
I2C(Inter-Integrated Circuit)是一种由飞利浦公司(现恩智浦半导体)开发的串行通信协议,用于连接低速外围设备。I2C总线只需要两根线(SDA:串行数据线,SCL:串行时钟线)就可以实现多个设备之间的数据交换。在任何时刻,只有一个主设备控制总线。(不能同时存在多个主设备)起始条件。原创 2024-06-04 18:10:38 · 1134 阅读 · 0 评论 -
STM 32_HAL_SDIO_SD卡
STM32的SDIO接口基于SD卡接口发展而来,兼容之前的SD卡,并可连接SDIO接口设备,如蓝牙、WiFi、照相机等。STM32的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SDI/O卡和CE-ATA设备。原创 2024-06-03 18:52:49 · 1127 阅读 · 0 评论 -
STM32_FSMC_HAL(介绍)
NOR/PSRAM信号FSMC_NE[4:1]:新事件(New Event)输入端口,用于检测外部事件或中断。FSMC_NL(或NADV):非活动低电平(Non-Active Low)或负地址检测(Negative Address Detection)信号,用于在访问NAND闪存时检测地址线的低电平状态。FSMC_NBL[1:0]:下一个字节(Next Byte)低两位地址线,用于指定下一次数据传输的目标地址。FSMC_CLK:时钟信号输入端口,用于同步存储控制器的操作与时钟源。公用信号。原创 2024-06-01 17:38:04 · 1366 阅读 · 0 评论 -
STM32_HAL_看门狗
监控CPU(或微控制器核心):(独立)看门狗可以监控CPU是否能够定期“喂狗”,即更新看门狗的计数器。如果CPU由于硬件故障、电磁干扰、软件错误等原因无法正常工作,它可能无法在规定的时间内更新看门狗,导致看门狗超时并触发系统复位。这样,看门狗确保了即使CPU出现问题,系统也能重启并尝试恢复正常运行。监控程序的执行:(窗口)看门狗也用于确保程序能够按预期运行。在正常情况下,程序会在执行过程中定期喂狗。原创 2024-05-30 19:07:41 · 1365 阅读 · 0 评论 -
STM32_HAL_DMA
(图由哔哩哔哩大佬的视频里截的图,如有侵权请联系我)原创 2024-05-29 23:15:04 · 1382 阅读 · 0 评论 -
STM32_HAL_低功耗的模式
这是正常工作模式,所有的系统功能都是可用的。:在CPU停止运行时,所有的外设和内存仍然处于供电状态。此模式下,CPU时钟被关闭,但可以通过中断或事件唤醒。:在此模式下,除了后备域(RTC、备份寄存器和备份SRAM)之外,所有的时钟都被停止,PLL、HSI和HSE振荡器也被关闭。该模式可以通过任意外设的中断或RTC闹钟事件唤醒。:这是STM32功耗最低的模式。在此模式下,除了后备域之外,1.8V电源被断开,PLL、HSI和HSE振荡器也被关闭。原创 2024-05-29 11:23:34 · 1291 阅读 · 0 评论 -
STM32_HAL_使用FPEC实现闪存的读写
在STM32微控制器中,Flash存储器的未编程区域通常会被初始化为0xFF(因为Flash擦除后的状态是所有位都是1)。然而,SRAM(静态随机存取存储器)的未初始化区域则可能包含随机数据,这些数据是上电后或者上次执行程序后遗留下来的。使用前必须先解锁,之后在上所。原创 2024-05-29 08:48:55 · 813 阅读 · 0 评论 -
STM32—HAL-PWM-舵机180(每个频率对应每个角度)
4.3效果0~180度在0度。原创 2024-05-26 14:18:01 · 321 阅读 · 0 评论 -
Keli5烧写STM32程序时出现ST-LINK USB communication error错误(USB 通信错误)
原因1更换USB线 还不行连下载器一起更换解决方法1在Keli5的安装目录中找到ST-LINK的固件更新软件更新即可。原创 2024-05-22 13:59:21 · 1110 阅读 · 0 评论 -
STM32_HAL_TIM_PWM
TM32微控制器中的定时器(TIM)被广泛用于产生脉冲宽度调制(PWM)信号。PWM是一种在模拟电路中广泛使用的技术,用于控制电路的功率输出。通过PWM信号,可以非常精确地控制电机速度、LED亮度、加热器温度等。原创 2024-05-21 18:47:01 · 1072 阅读 · 0 评论 -
STM32_HAL__TIM_输出比较
输出比较在比较值到到达值时改变引脚或产生中断PWM为特殊的输出比较区别功能目的:输出比较通常用于产生精确的定时事件,而PWM用于模拟信号的生成和控制。信号形式:输出比较产生离散的脉冲或电平变化,PWM产生连续的脉冲信号。调节能力:PWM可以通过改变占空比来调节输出功率或电压,而输出比较通常不具备这种调节能力。使用场景:输出比较适用于需要精确时间控制的场合,PWM适用于需要连续模拟量控制的场合。原创 2024-05-20 11:30:48 · 1468 阅读 · 0 评论 -
STM32_HAL_TIM_通用计时器_实现计时
Slave Mode(从模式):当设备被设置为从模式时,它将等待来自主设备的触发信号才开始工作。这通常用于同步操作,确保多个设备按照相同的时序运行。Trigger Source(触发源):这是指设备接收触发信号的来源。例如,它可以是外部的一个特定事件、内部的定时器到期或其他设备的信号。选择合适的触发源对于准确捕捉和处理事件至关重要。Clock Source(时钟源):时钟源决定了设备的工作节奏和速度。不同的时钟源可能会有不同的稳定性和精度,因此根据具体应用需求选择合适的时钟源非常重要。原创 2024-05-15 12:05:04 · 2593 阅读 · 0 评论 -
Keli5烧写程序成功后再次烧写程序却不能识别芯片。解决方法
再次烧写不能识别下如图(提示为不能识别到芯片)硬件识别正常Debug配置正常就是不能识别到芯片。原创 2024-05-15 11:55:50 · 1000 阅读 · 0 评论 -
STM32_HAL_系统定时器(SysTick)_实现计时
系统定时器(SysTick)是ARM Cortex-M处理器系列中的一个特殊定时器,它不属于STM32F1系列微控制器的外设,而是处理器内部的一个组件。SysTick定时器的作用是为操作系统或其他需要精确时钟计数和中断服务的应用提供基础的时间参考。:SysTick计数器是一个24位的寄存器,可以计数的范围是从0到16777215(即2^24 - 1)。:SysTick可以使用不同的时钟源,包括处理器的主时钟(Cortex-M3/M4/M7等处理器的主时钟)。时钟源的选择会影响SysTick的计数频率。原创 2024-05-13 17:42:56 · 1970 阅读 · 0 评论 -
STM32_HAL_TIM_1介绍
::(仅部分STM32F1型号提供)::(Upcounting Mode):(Downcounting Mode):(Center-Aligned Mode):(Input Capture Mode):(Output Compare Mode):(PWM Mode):(One-Pulse Mode):(Encoder Interface Mode):(Break Function):::::(如果是PWM应用):(如果是PWM应用):(如果需要。原创 2024-05-13 09:54:30 · 652 阅读 · 0 评论 -
STM32_HAL_RTC_中断实现闹钟
在STM32Cude中设置RTC//具体设置看先前发的文章再打开闹钟中断(如下图)原创 2024-05-11 00:04:45 · 882 阅读 · 0 评论 -
stm32_HAL_RTC_闹钟函数(F1只有一个闹钟)
【代码】stm32_HAL_RTC_闹钟函数。原创 2024-05-10 21:52:00 · 352 阅读 · 0 评论 -
STM32_HAL_RTC_实现获取日期
使用hal库的函数获取时间和日期,在使用sprintf()函数将数据转换为字符用UART将数据传出。原创 2024-05-10 20:29:57 · 361 阅读 · 0 评论 -
STM32_HAL_RTC_解决恢复电源时再一次初始化
板子再次恢复电源时直接初始化了时间。原创 2024-05-10 18:56:00 · 352 阅读 · 0 评论 -
C中将其他类型转换为字符类型 sprintf
函数sprintf头文件#include原创 2024-05-08 21:41:06 · 252 阅读 · 0 评论 -
stm32_RTC_2_HAL——stm32CudeMX
RTC(实时时钟)不仅仅提供计数功能,它是一个完整的时钟和日历模块,用于提供日期和时间信息。RTC 能够提供年、月、日、星期、时、分、秒等时间信息,并且通常具有闹钟功能,可以用于定时唤醒或触发事件。原创 2024-05-08 21:12:42 · 831 阅读 · 0 评论