自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 嵌入式工程师进阶指南:程序基础架构之前后台编程模式

【代码】嵌入式工程师进阶指南:程序基础架构之前后台编程模式。

2026-05-18 16:04:32 26

原创 嵌入式工程师进阶指南:RTOS开发原则和陷阱

嵌入式实时系统开发经验总结:1.任务优先级遵循RMA原则,周期短的任务优先级高;2.周期设置应保持谐波关系,优先选择2的幂次倍;3.避免优先级翻转,使用互斥量而非信号量;4.防止低优先级任务饥饿,避免高优先级任务忙等待;5.控制任务栈使用率在70%-80%以内,避免函数嵌套过深;6.合理使用消息队列,设置适当优先级和容量;7.采用内存池管理减少碎片,及时释放内存防泄漏。这些要点可有效提升系统稳定性和性能。

2026-05-18 16:03:01 30

原创 WiFi 模块自动联网自带MQTT协议栈和云服务器串口透传免AT开发

本文介绍了一种自动联网自带MQTT协议栈和云服务器串口透传免AT开发的WiFi 模块,本模块自动联网和自动登录云服务器,自带的云服务器免费长期支持。本模块可以实现数据上云、远程调试、远程程序升级等功能。

2026-05-10 21:51:18 55

原创 USB转IIC、SPI、CAN、RS485、TTL串口 五合一通信设备(CommAdapter)

如果在项目中对模块的IIC和SPI通信调试遇到麻烦,推荐大家使用。本模块是使用电脑USB口转接嵌入式软件开发常用的通信方式,包含TTL串口、CAN通信、RS485通信、SPI和IIC通信。SPI测试:使用本设备的MISO和MOSI和SCK、CS四个信号线连接对外模块,如果模块独立供电需要本设备和模块共地。IIC测试:使用本设备的SDA和SCL两个信号线连接对外模块,如果模块独立供电需要本设备和模块共地。TTL串口:使用本设备的TXD和RXD两个信号线连接对外模块,如果模块独立供电需要本设备和模块共地。

2026-01-08 21:01:27 289

原创 STM32 HAL库学习 RNG篇

用于配置信号源的选择和开启外设时钟,此处选择的信号源为LSE。除了可以选择这个时钟之外还有低速内部时钟48M、LSI、PLL的分频时钟可以做选择。初始化函数,内部只需要对时钟出错是否监测功能开启与否的一个选择,因为RNG功能的真随机数生成需要使用时钟作为信号源,不同于其他的软件生成一般利用当前的时间作为信号源,所以对时钟的有所要求。RNG 指的是STM32 单片机带有的硬件随机数生成器功能,通过这个硬件功能可以生成真随机数。功能明确,使用简单。此处使用了非中断生成的方法,还可以使用中断生成的方法。

2025-06-15 16:35:51 785

原创 STM32 HAL库函数学习 CRC篇

CRC是循环冗余校验,常用于数据通信过程中进行收发双方对数据组进行校验。例如RS485,DLT64协议中常用。而STM32中的CRC技术使用非常简单高效。CRC计算设计到多项式和初始值,如果不需要设置则可以直接使用ST默认的多项式和初始值。重要功能函数,用于计算CRC的值。本函数是对一组数据进行一次性的CRC计算。初始化函数1的回调函数,主要是打开本外设功能的时钟。复位功能,调用方法如上函数。

2025-05-31 23:18:12 1047

原创 STM32 HAL库函数学习 GPIO篇

​​在HAL_GPIO_EXTI_IRQHandler函数中会调用一个回调函数来完成最终的中断处理,因为不同系列调用的回调函数不一致,因此需要打开本函数内部找到具体调用哪一个回调函数。GPIO口配置锁死函数。其目的是为了防止在配置好IO口后在程序中其他地方再次修改IO的配置造成故障,使用本函数后当前的IO模式不能被修改,除非程序复位后才能修改。GPIO外设属于是任何芯片的最基础功能 ,STM32各个系列的GPIO初始化都是一致的,有不同的是部分系列在IO复用使用了单独一个成员属性。外部中断请求处理函数。

2025-05-29 20:18:32 1651 1

原创 STM32 HAL库函数学习FDCAN篇

相比于FDCAN_TxHeaderTypeDef 类型的数据 ,此处声明的变量不需要配置参数,只需要读取内部数据即可。类型的指针,此结构体类型用于封装CAN发送数据之外的其他必要信息。第三个参数是要发送的数据。CAN初始化回调配置,配置GPIO口和时钟 ,被函数1自动调用。FDCAN 接收中断的回调函数,只处理FIFO0的接收数据中断。在以前的HAL库中 两个参数合并在了一起,现在拆分成了两部分。同函数9一样,接收数据的时候也需要提供一个。参数三是数据返回的指针。复位FDCAN配置。开启FDCAN中断。

2025-04-08 10:34:30 3637

原创 STM32 HAL库函数学习SPI篇

SPI硬件初始化回调函数,自动被函数1调用,注意SPI中的CS 管脚是需要单独配置的,不能和MSIO、SCK、MOSI配合到一起。最终使用此函数初始化SPI外设,注意还要使用__HAL_SPI_ENABLE();SPI发送数据的函数(只发送数据)。通过发送中断的形式向外发送数据。SPI发送数据的函数(只发送数据)。通过阻塞的形式向外发送数据。SPI接收数据函数(只接收数据)。配置SPI通信的所有参数,主要是区分SPI的四种工作模式。SPI接收数据函数(只接收数据)。复位SPI外设的参数配置。

2025-04-08 10:34:09 2725

原创 STM32 HAL库函数学习 I2C篇

本篇内容讲述STM32的硬件IIC功能。

2022-06-18 19:26:34 20928 2

原创 STM32 库函数学习 ADC篇

本系列的库函数学习教程都是基于HAL库的,并且这个HAL库使用的是M7内核的库函数,如果使用的STM32型号低于STM32H7XX的时候发现有些HAL库函数在这些型号上没有也不用感到奇怪。STM32H7的ADC位数是16位的。1、HAL_StatusTypeDef HAL_ADC_Init (ADC_HandleTypeDef * hadc)ADC的初始化函数。ADC_HandleTypeDef ADC1_Handler;ADC1_Handler.Instance = ADC1;AD

2021-08-12 17:42:03 8356

原创 STM32 库函数学习 TIM篇

1、HAL_StatusTypeDef HAL_TIM_Base_Init (TIM_HandleTypeDef * htim)这个函数属于定时器使用基本的定时功能的初始化函数,它的输入参数为自定义的定时器指针。TIM_HandleTypeDef TIM3_Handler; //定时器句柄 void TIM3_Init(u16 arr,u16 psc){ TIM3_Handler.Instance=TIM3; //通用定时

2021-06-12 22:52:03 12727 4

原创 STM32 HAL库函数学习 UART篇

从今天开始定时更新一下有关STM32 HAL库学习的过程,主要是对HAL库函数的所有讲解。HAL_USART_Init(USART_HandleTypeDef * husart)初始化串口的的函数:用法为UART_HandleTypeDef huart1;huart1.xxx = ssss;...HAL_USART_Init(&huart1); //需要注意点的是函数的输入参数是指针类型UART_HandleTypeDef huart4; huart4.Inst.

2021-04-16 23:19:32 33018 7

原创 ART-PI平台移植Touchgfx 驱动gt9147 触摸屏幕点亮LED

本篇文章用来介绍一下怎么使用RTThread Studio 在ART-PI平台上面移植TouchGFX,并做一个简单的触摸按键让LED灯闪烁试验。我使用的液晶屏幕是正点原子的4.3寸RGBLCD,触摸芯片是GT9147。要注意的是正点原子的GT9147板液晶有新旧两个版本,目前RTT Studio里面的GT9147包读取新版的触摸位置不对。本文会简单介绍一下在移植中出现的常见的问题。再开发之前需要下载最新的RTThread Studio 2.0.0,下载最新的ART-PI BSP1.1.0随后.

2020-12-13 21:50:06 1779

原创 使用STM32CUBE对STM32F429移植TouchGFX

TouchGFX是类似于stemwin的图形界面,用这个图形库可以开发些很漂亮的应用,相信大家能搜索到这篇文章也应该对TouchGFX有一些了解了。首先在移植tfx之前需要了解最常见的移植通常是RGBLCD屏幕,使用RGBLCD就要求STM32必须有FMC功能和硬件使用外部RAM芯片,所以需要使用到LTDC、FMC、DMA2D三种技术。因此STM32F1系列和STM32F40x系列都没法移植TFX,而且TFX目前也不支持TFTLCD屏幕。本教程将使用STM32Cube移植TFX,硬件电路采取的是正点原子

2020-08-09 23:07:09 1796 4

原创 Qt多线程下Word转换为PDF

在工作的项目中需要让计算机自动生成公司生产产品的电子版的质检报告.我首先用的是让软件生成Word格式的报告,但是这个格式容易修改因此领导不太满意.现在只能修改成PDF格式.因为公司的质检报告有固定的的模板,使用Qt很方便的实现生成Word版本,所以用的方法是先生成Word格式的质检报告然后格式进行转换.一个重要的问题就是格式转换需要很长的时间,在转换期间软件会处于冻结转态.因此需要使用到多...

2020-02-21 09:21:18 2338

原创 基于STM32的ch438串口扩展芯片使用

CH438串口扩展芯片是一个一对八的串口扩展芯片,在一些串口需要过多的场合比较有用。这个串口芯片事实上并没有占用MCU的串口它实际上是使用了8个IO口做数据的传输。下面我就简单介绍一下怎么使用STM32驱动这个串口扩展芯片。并演示一个用CH438发送一段MODBUS码给电脑,电脑发给STM32的数据数据也回显示到电脑上.CH438我用的是44管脚的LQFP44封装。实际的电路是这样的:...

2019-06-22 18:52:25 21313 20

原创 STM32 测量交流电压的方法

关于STM32测量交流电的一种方法.关于交流电压测量的难点有以下几点:1.电压过大,比如市电220V,2.交流电和直流电区别很大,例如值一直在变不稳定.3.交流电压存在负值,STM32 的AD模块没法测量.4.STM32读取的电压值是瞬时值和交流电的有效值还要转换.针对以上几点:可以采取合适的硬件设计和算法设计解决.采用电流互感器将电压从高变低,采用直流电压叠加的方式将整体的交流波形抬升,...

2019-05-19 15:14:22 45072 27

原创 STM32 RTC闹钟中断和唤醒待机模式

RTC代表的是实时时钟的意思。因为它提供的时钟基准比较准确所以用处还是很多的。本文章主要讲解基于STM32F103上的RTC闹钟中断功能以及用闹钟中断唤醒STM32的待机模式。需要注意RTC的几个要点:1.RTC的值被设定后它就会一直按照设定的基准时间自己递增,如果你的硬件设备上发现一个纽扣电池,那就是给RTC功能供电用的。因此就算关闭掉设备的主电源,RTC的运行也是不受影响的,当然如果扣掉纽...

2018-08-18 22:41:23 38303 6

原创 C51单片机通过串口调节PWM波

PWM 是一种常用的电子控制技术PWM 本意为 脉冲宽度调制,可以简单理解为对占空比的控制。下图就是占空比图例,一个周期内高电平时间与周期时间的比值。现在的一些MCU自带PWM控制功能,但是51/52单片机还是没有这个功能。可以用程序自己实现。用到的51单片机资源如下:1.双定时器及定时器中断2.串口和串口中断下面看下程序:PWM.H#ifndef _PWM_...

2018-07-22 11:04:54 10461 3

空空如也

空空如也

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

TA关注的人

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