STM32
文章平均质量分 92
千千道
千道千寻
展开
-
STM32 独立看门狗(IWDG)详解
STM32 的独立看门狗是一种非常重要的可靠性机制,可以在系统出现故障时自动复位系统,确保系统的正常运行。在使用独立看门狗时,需要注意喂狗时间、时钟源稳定性和中断处理等问题,以确保独立看门狗能够正常工作。希望本文对大家理解和使用 STM32 的独立看门狗有所帮助。原创 2024-11-14 09:16:22 · 1801 阅读 · 0 评论 -
FreeRTOS 低功耗 Tickless 模式深度解析
FreeRTOS 的低功耗 Tickless 模式为嵌入式系统提供了一种有效的功耗管理方法。通过合理地配置和使用 Tickless 模式,可以显著降低系统的功耗,提高响应速度,延长电池寿命。在实际应用中,开发者需要根据硬件平台的特性和应用场景的需求,进行适当的配置和编程,以充分发挥 Tickless 模式的优势。希望本文对读者理解和使用 FreeRTOS 的 Tickless 模式有所帮助。原创 2024-11-13 10:20:26 · 796 阅读 · 0 评论 -
FreeRTOS 信号量的使用
信号量是一种用于任务间同步和资源管理的机制。它可以被看作是一个计数器,用于控制对共享资源的访问。当一个任务需要访问共享资源时,它可以尝试获取信号量。如果信号量的值大于零,任务可以成功获取信号量并访问资源;如果信号量的值为零,任务将被阻塞,直到信号量的值大于零。实现任务之间的同步、控制对共享资源的访问、防止资源竞争和死锁等问题。二进制信号量只有两种状态:可用(1)和不可用(0)。它通常用于实现任务之间的同步,例如一个任务等待另一个任务完成某个操作后再继续执行。原创 2024-11-11 10:04:02 · 766 阅读 · 0 评论 -
FreeRTOS 队列详解
FreeRTOS 队列是一种非常强大和灵活的通信机制,它为任务与任务、任务与中断之间的通信提供了高效、可靠的方式。通过合理地使用队列,可以实现任务之间的解耦和协作,提高系统的资源利用率和任务的响应性。在实际应用中,开发者需要根据具体的需求和系统的资源状况,合理地设置队列的大小、阻塞时间等参数,注意数据的一致性和完整性,以及在中断中正确地使用队列操作函数。只有这样,才能充分发挥 FreeRTOS 队列的优势,开发出高效、稳定的嵌入式系统。原创 2024-11-05 16:37:42 · 1081 阅读 · 0 评论 -
FreeRTOS 中的列表与列表项详解
在 FreeRTOS 中,列表是一种数据结构,用于存储和管理多个列表项。它可以用于实现任务等待队列、消息队列、事件标志组等功能。列表提供了一种方便的方式来组织和管理多个相关的数据项,使得在不同的任务之间进行数据传递和同步变得更加容易。列表项是列表中的具体数据单元,它可以存储任何类型的数据。在 FreeRTOS 中,列表项通常用于表示任务控制块(TCB)、消息队列项、事件标志组项等。列表项的作用是将不同的数据项连接成一个列表,以便进行统一的管理和操作。原创 2024-11-04 10:01:29 · 1044 阅读 · 0 评论 -
FreeRTOS 任务调度详解
FreeRTOS 的任务调度是其核心功能之一,通过合理地设置任务优先级、选择合适的调度策略以及正确使用相关的 API,可以实现高效的多任务并发执行,提高嵌入式系统的性能和响应速度。在实际应用中,需要根据具体的系统需求和硬件资源来进行任务调度的优化和调整,以确保系统的稳定性和可靠性。希望本文对读者理解和应用 FreeRTOS 的任务调度功能有所帮助。原创 2024-10-29 09:17:19 · 1051 阅读 · 0 评论 -
移植FreeRTOS实时操作系统(基于STM32F429)
在嵌入式系统开发中,实时操作系统(RTOS)的使用可以极大地提高系统的可靠性、稳定性和开发效率。FreeRTOS 作为一款开源的、轻量级的实时操作系统,被广泛应用于各种嵌入式项目中。本文将详细介绍如何将 FreeRTOS 移植到 STM32F429 微控制器上,帮助开发者快速搭建一个高效的嵌入式实时系统。原创 2024-10-28 16:27:17 · 1131 阅读 · 0 评论 -
FreeRTOS 入门指南
在嵌入式系统开发中,实时操作系统(RTOS)起着至关重要的作用。FreeRTOS 作为一款流行的开源实时操作系统,具有小巧、灵活、高效等特点,被广泛应用于各种嵌入式项目中。本文将带领大家初步了解 FreeRTOS,包括其安装、基本概念、创建任务以及任务调度等方面的内容,帮助初学者快速入门。原创 2024-10-25 16:04:03 · 1175 阅读 · 0 评论 -
STM32 实现 TCP 服务器与多个设备通信
在嵌入式系统开发中,常常需要实现设备之间的网络通信。STM32 作为一款广泛应用的微控制器,结合网络通信功能可以实现与多个设备的交互。本文将介绍如何在 STM32 上实现 TCP 服务器端,以便与多个设备进行通讯。lwipopts.h。原创 2024-10-10 09:22:30 · 1836 阅读 · 3 评论 -
STM32 实现 UDP 广播通信
在嵌入式系统开发中,经常需要实现设备之间的网络通信。UDP(User Datagram Protocol)是一种无连接的传输层协议,具有高效、快速的特点。而 UDP 广播则可以让一个设备向同一网络中的所有设备发送消息,非常适合用于设备发现、状态更新等场景。本文将介绍如何在 STM32 微控制器上使用 LWIP(Lightweight IP)协议栈实现 UDP 广播通信。原创 2024-09-30 17:10:27 · 1795 阅读 · 0 评论 -
STM32 的 SDIO 接口(基于STM32F429HAL库)
STM32F429 的 SDIO 接口结合 HAL 库提供了一种方便、高效的数据存储解决方案。通过正确配置和使用 SDIO 接口,可以实现嵌入式系统与 SD 卡等存储设备的快速数据传输。在实际应用中,需要注意电源供应、时钟频率设置、卡的兼容性等问题,并进行充分的错误处理,以确保系统的稳定性和可靠性。希望本文对大家在使用 STM32F429 的 SDIO 接口时有所帮助。原创 2024-09-23 10:05:49 · 1733 阅读 · 0 评论 -
STM32 的 RTC(实时时钟)详解
STM32 的 RTC 模块为嵌入式系统提供了可靠的时间基准。通过了解 RTC 的工作原理、配置方法和应用场景,开发者可以充分利用 RTC 的功能,为系统添加时间记录、定时任务等功能,提高系统的实用性和可靠性。在使用 RTC 时,需要注意时钟源的选择、时间的初始化和校准以及备份寄存器的使用等问题,以确保 RTC 的正常运行和数据的安全性。希望本文对大家在使用 STM32 的 RTC 模块时有所帮助。原创 2024-09-14 09:27:49 · 3469 阅读 · 0 评论 -
STM32 如何生成随机数
STM32 的随机数发生器是基于硬件的真随机数生成器,它利用了物理随机源来产生随机数。这个物理随机源通常是一个基于热噪声或其他物理现象的电路,能够产生高度随机的数字序列。原创 2024-09-13 09:11:29 · 2340 阅读 · 0 评论 -
STM32的寄存器深度解析
寄存器是 CPU 内部用来存放数据的小型存储区域,具有高速存储的特点。在 STM32 中,寄存器可以暂存指令、数据和地址,为微控制器的高效运行提供了关键支持。例如,通过对特定寄存器的操作,可以实现对 GPIO(通用输入输出)端口的配置,控制外设的输入输出状态。在实际的嵌入式开发中,了解和掌握 STM32 寄存器的使用方法至关重要。它不仅可以帮助开发者实现对硬件的精确控制,还能提高程序的性能和可移植性。无论是直接操作寄存器,还是使用高级的库函数,都需要对寄存器的原理有深入的理解。原创 2024-09-11 10:00:42 · 3218 阅读 · 0 评论 -
STM32 的 CAN 通讯全攻略
CAN 协议经过 ISO 标准化后有两个标准:ISO11898 标准和 ISO11519 - 2 标准。其中 ISO11898 是针对通信速率为 125Kbps - 1Mbps 的高速通信标准,而 ISO11519 - 2 是针对通信速率为 125Kbps 以下的低速通信标准。STM32 的 CAN 控制器支持 CAN 2.0A 和 CAN 2.0B Active 版本协议。CAN 2.0A 只能处理标准数据帧,扩展帧的内容会识别为错误;CAN 2.0B Active 可以处理标准数据帧和扩展数据帧。原创 2024-09-10 11:09:28 · 2596 阅读 · 0 评论 -
STM32 之 SDRAM 详解
SDRAM 是一种同步动态随机存取存储器,它具有容量大、速度快、价格相对较低等优点。SDRAM 需要外部时钟信号进行同步操作,并且可以进行高速的数据读写。在嵌入式系统中,SDRAM 通常被用作程序运行空间、数据存储区或者图形缓冲区等。STM32 与 SDRAM 的连接和使用可以为嵌入式系统提供更大的存储容量和更高的运行速度。在使用 SDRAM 时,需要注意硬件连接、时钟配置、初始化、读写操作和刷新操作等方面的问题。通过合理地使用 SDRAM,可以提高嵌入式系统的性能和功能。原创 2024-09-09 09:36:52 · 2208 阅读 · 0 评论 -
STM32 PWM 详解(基于 STM32F429 HAL 库)
PWM 是一种数字信号调制技术,它通过在固定的周期内改变高电平和低电平的时间比例来实现对模拟信号的模拟。在 STM32 中,PWM 可以用于控制电机速度、LED 亮度、音频输出等。本文详细介绍了如何在 STM32F429 上使用 HAL 库实现 PWM 输出。通过配置定时器和通道,我们可以产生不同频率和占空比的 PWM 信号,用于控制各种外设。在实际应用中,可以根据具体需求调整参数,以满足不同的应用场景。希望本文对大家在使用 STM32F429 的 PWM 功能时有所帮助。原创 2024-09-08 09:33:01 · 1925 阅读 · 0 评论 -
STM32的窗口看门狗详解及案例(基于HAL库)
STM32 窗口看门狗是一种非常有效的保障系统稳定性和可靠性的手段。通过合理配置窗口看门狗,可以在系统出现故障时及时复位系统,避免系统出现严重故障。在实际应用中,需要根据系统的实际情况合理设置时间窗口和喂狗操作的时机,以确保窗口看门狗能够正常工作。同时,还需要注意早期唤醒中断的处理,以避免影响系统的正常运行。原创 2024-09-04 14:23:43 · 1692 阅读 · 0 评论 -
二进制基础和STM32的常用位运算
在计算机科学中,二进制和位运算是非常基础且重要的概念。它们在底层编程、优化算法、数据压缩等方面都有着广泛的应用。本文将深入介绍二进制基础和STM32的常用位运算。原创 2024-09-02 10:49:46 · 1331 阅读 · 0 评论 -
深入理解 UCOSIII 软件定时器
UCOSIII 软件定时器是一种非常实用的定时工具,它为嵌入式系统开发提供了强大的支持。通过本文的介绍,相信你已经对 UCOSIII 软件定时器的工作原理、使用方法以及实际应用有了更深入的了解。在实际开发中,合理地使用软件定时器可以提高系统的可靠性和实时性,为你的项目带来更好的性能表现。原创 2024-08-27 08:59:17 · 1005 阅读 · 0 评论 -
UCOSIII 中的优先级反转与互斥信号量详解
在嵌入式实时操作系统中,μC/OS-III(以下简称 UCOSIII)以其高可靠性和可裁剪性被广泛应用。在使用 UCOSIII 进行多任务开发时,优先级反转和互斥信号量是两个需要深入理解的重要概念。优先级反转是指在实时系统中,高优先级任务被低优先级任务阻塞,而导致高优先级任务的执行时间被延迟的现象。这种情况通常发生在多个任务共享资源时,低优先级任务持有资源而高优先级任务等待该资源的情况下。优先级反转是实时系统中一个需要解决的重要问题。原创 2024-08-21 09:05:05 · 1529 阅读 · 5 评论 -
STM32常用C语言知识总结
STM32 作为一款广泛应用的微控制器,其开发离不开 C 语言的支持。C 语言凭借其高效、灵活和可移植性,成为了嵌入式系统开发的首选语言。本文将对 STM32 开发中涉及的 C 语言知识点进行详细总结,帮助大家更好地掌握 STM32 的开发。原创 2024-08-19 14:40:56 · 4070 阅读 · 8 评论 -
UCOSIII信号量详解
UCOSIII信号量是UCOSIII操作系统中用于任务同步和互斥访问共享资源的一种重要机制。下面我将详细解释UCOSIII信号量的类型、使用方法,以及它在UCOSIII操作系统中的作用。原创 2024-08-15 14:04:09 · 1271 阅读 · 0 评论 -
UCOSIII内存管理机制详解
UCOSIII(即Micrium μC/OS-III)的内存管理是其操作系统功能的一个重要组成部分,旨在高效地管理和分配系统内存资源。UCOSIII将内存管理分为不同的区域(或称为“区”)和块。每个区域包含多个固定大小的内存块,这些内存块用于满足应用程序的不同内存需求。原创 2024-08-14 13:47:39 · 1017 阅读 · 0 评论 -
UCOSIII事件标志组详解
定义:在UCOSIII中,事件标志组是类型的内核对象,用于管理一串事件标志位。创建:在使用事件标志组之前,需要调用函数来创建一个事件标志组。这个函数需要指定事件标志组的名称、初始值以及一个用于保存错误码的参数。事件标志组对象事件标志组的名字事件标志组里所有标志位的初值,默认写0返回错误码,没有错误的就返回OS_ERR_NONE。原创 2024-08-13 16:27:44 · 1479 阅读 · 0 评论 -
UCOSIII消息队列详解
UCOSIII的消息队列是由一系列消息按照一定的队列规则(如先进先出FIFO或后进先出LIFO)组成的数据结构。每个消息包含一个指向数据的指针、数据的大小以及时间戳等信息。通过消息队列,任务间可以传递不固定长度的消息,实现了任务间的异步通信。原创 2024-08-12 13:41:31 · 1657 阅读 · 0 评论 -
UCOSIII不开启时间片轮转调度同一优先级任务如何执行
UCOSIII(MicroC/OS-III)中的时间片轮转调度(Round-Robin Scheduling)是一种用于分时系统中进程调度的算法,它主要用于解决在相同优先级下多个任务如何公平地共享CPU资源的问题。原创 2024-08-11 13:26:06 · 1515 阅读 · 0 评论 -
UCOSIII的任务管理详解
对于操作系统而言,最重要的就是任务的创建、挂起、删除和调度等,简单的创建任务可能大家都会,但是做大型项目的话,任务多了就可能需要对UCOSIII的任务管理做更深层次的一些理解。原创 2024-08-09 14:05:23 · 1039 阅读 · 0 评论 -
基于STM32F429移植UCOSIII
μC/OS-III(Micro C OS Three)是一个可升级的、可固化的、基于优先级的实时内核,它是Micrium公司出品的RTOS(实时操作系统)类实时操作系统的一个版本。原创 2024-08-08 14:38:40 · 1348 阅读 · 0 评论 -
STM32的USB接口介绍
STM32 USB接口是STM32微控制器系列中集成的一种通信接口,它允许STM32微控制器与外部设备或计算机进行高速的数据传输和通信。STM32的USB接口通常支持USB 2.0标准,部分高端型号可能还支持USB 3.0或更高版本。根据STM32的USB IP模块不同,USB接口可以分为低速(Low-Speed)、全速(Full-Speed, FS)、高速(High-Speed, HS)或超高速(SuperSpeed, SS)四种类型。原创 2024-08-07 14:05:02 · 3250 阅读 · 0 评论 -
STM32的SDIO接口详解
SDIO是在SD卡接口的基础上发展而来,它兼容SD卡,并可以连接SDIO接口设备。STM32的SDIO控制器支持多种存储卡和接口设备,包括多媒体卡(MMC卡)、SD存储卡、SDIO卡和CE-ATA设备。STM32的SDIO控制器复位后,SDIO_D0用于数据传输。如果连接了多媒体卡,则SDIO_D0、SDIO_D[3:0]或SDIO_D[7:0]可以用于数据传输。原创 2024-08-06 14:09:51 · 1703 阅读 · 0 评论 -
STM32卡死、跑飞如何调试确定问题
我们初学STM32的时候代码难免会出现疏忽,导致程序跑飞,不再正常运行,那么都是什么情况会导致STM32程序跑飞呢?原创 2024-08-02 17:18:36 · 3712 阅读 · 2 评论 -
STM32的内存映射机制详解
刚开始学习STM32的同学可能只知道按案例配置RAM、Flash的起始地址和容量,但是这个地址是怎么来的,可能并不清楚,接下来让我来给大家介绍一下STM32的内存映射机制。STM32的内存映射机制是一种将不同的内存区域(包括Flash、SRAM、外设寄存器等)按逻辑功能映射到单片机的线性地址空间中的方法。这种机制使得用户可以通过访问特定的地址来操作存储单元或外设寄存器,从而实现对STM32单片机内部资源的直接控制。原创 2024-07-31 16:51:04 · 1912 阅读 · 1 评论 -
UCOSIII的中断和时间管理
UCOSIII(也称为µC/OS-III)的中断管理是其实时操作系统(RTOS)功能的重要组成部分。中断是CPU的一种常见特性,用于向CPU通知异步事件的发生,使得CPU能够暂停当前正在执行的程序,转而执行中断服务程序(ISR)。在UCOSIII中,中断管理涉及多个方面,包括等。原创 2024-07-30 14:57:16 · 1110 阅读 · 0 评论 -
STM32的IO复用详解
STM32的IO复用是指STM32微控制器中的通用输入输出(GPIO)引脚可以配置为执行除了基本的输入输出功能之外的其他特定功能。这些特定功能通常与STM32的内置外设(如ADC、TIM、USART等)相关联。当GPIO引脚被配置为执行这些特定功能时,就称为引脚复用。具体来说,STM32的每个GPIO引脚都通过一个复用器连接到多个内置外设或模块。这个复用器允许一次只选择一个复用功能(AF)连接到对应的IO口,从而确保共用同一个IO引脚的外设之间不会发生冲突。原创 2024-07-27 16:19:25 · 1508 阅读 · 0 评论 -
STM32的外部中断详解
想象一下你正在家里做饭,突然门铃响了,你听到门铃声后,会暂时放下手中的事情(比如炒菜),去开门看看是谁。在这个例子中,门铃声就是一个“中断”,它打断了你原本在做的事情(炒菜)。在STM32(一个常用的微控制器)中,中断也是类似的概念。STM32有很多功能,比如控制LED灯、读取传感器数据、与电脑通信等。当STM32正在执行某个任务时,如果外部发生了某个事件(比如一个按钮被按下、一个传感器值发生了变化),这个事件就会产生一个“中断信号”,告诉STM32:“嘿,有事情发生了,你需要停下来看看!原创 2024-07-25 16:21:20 · 1597 阅读 · 1 评论 -
norflash和nandflash的区别
NAND Flash是一种非易失性存储器,内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NOR Flash,也称为NOR型闪存,是一种非易失性存储器(NVM),它可以在不需要持续电力供应的情况下保留存储的数据。NOR Flash以其高可靠性和直接执行代码(eXecute In Place, XIP)的能力而著称,这使得它成为嵌入式系统和某些特定应用的理想选择,我们常用的片内flash通常都是norflash,STM32的代码在片内flash中运行,而不是在片内RAM里面。原创 2024-07-24 15:46:43 · 6838 阅读 · 0 评论 -
STM32的串口(RS485)数据收发
我们的单片机串口一般常用RS232、RS485、TTL这几种通讯方式,日常调试可能RS232、TTL比较多,真正和其它厂家数据交互的时候,还是RS485用的比较多,因为它是差分信号等电气属性,所以比较稳定,传输距离长,常与同用交互数据,今天这篇文章就讲一下如何利用RS485进行数据收发。原创 2024-07-20 16:09:40 · 3918 阅读 · 0 评论 -
STM32被拔网线 LWIP的TCP无法重连解决方案
一开始的解决思路就是在tcp的recv下面加一个检测网线是否被插入的判断,如果网线被拔出的话,也break,跳出当前while去上一级while里面进行tcp连接,可是忽略了recv函数阻塞的问题,网线被拔出recv没有数据根本不往下执行,如果是netconn不阻塞的那种倒是可以,所以这个方案否了。后来琢磨recv不是阻塞么,不如重新创建一个任务检测网口的网线插入状态,算是解决了网线拔出再插入以后tcp不能重新建立连接的问题,可能方法过于简单粗暴,如果大佬有更好的方法解决这个问题欢迎交流指导。原创 2024-07-19 16:42:21 · 2807 阅读 · 6 评论 -
STM32的ADC详解
ADC是,是一种将模拟量(如电压值、光敏电阻阻值、热敏电阻阻值等)转换为数字量的设备。STM32F4的ADC是12位逐次逼近型的模拟数字转换器,具有多达19个复用通道,可测量来自16个外部源、2个内部源通道的信号。ADC的结果存储在一个左对齐或者右对齐的16位数据寄存器中。STM32F4系列有3个ADC,这些ADC可以独立使用,也可以使用双重或者三重模式来提高采样率。原创 2024-07-17 15:26:50 · 3316 阅读 · 2 评论
分享