- 博客(36)
- 收藏
- 关注
原创 STM32之FreeRTOS开发介绍(十九)
FreeRTOS是一个免费的、开源的实时操作系统,专为微控制器和嵌入式系统设计,它以其轻量级、高效、易于移植和强大的功能而闻名,成为许多嵌入式开发者的首选。FreeRTOS操作系统支持多种不同架构的不同型号的处理器,比如STM32系列的F1、F4、F7和H7等都可以移植FreeRTOS,同时ST公司也在其STM32CubeMX生态系统中加入了对FreeRTOS操作系统的支持,这极大的方便了我们学习和使用FreeRTOS操作系统。
2025-01-20 15:50:33
1769
原创 STM32之CubeMX新建工程操作(十八)
STM32CubeMX源自意法半导体,旨在通过减少开发工作量、时间和成本,从而最大限度地复用软件并缩短创建目标系统的时间,让开发人员的生活更轻松。通过STM32CubeMX图形软件配置工具生成单片机工程代码,本文主要介绍如何在CubeMX上新建一个项目工程。一、下面提供的代码,基于STM32F407ZGT芯片编写,可直接在原子开发板上运行,也可运行在各工程项目上,但需要注意各接口以及相应的引脚应和原子开发板上保持一致。单片机STM32F407-Case程序代码例程-CSDN文库。
2025-01-19 08:30:00
1910
3
原创 STM32之CubeMX图形化工具开发介绍(十七)
STMCube源自意法半导体,旨在通过减少开发工作量、时间和成本,从而最大限度地复用软件并缩短创建目标系统的时间,让开发人员的生活更轻松。STM32CubeMX支持32位基于ARMCortex的微控制器,涵盖了整个STM32产品。STM32CubeMX图形软件配置工具主要功能包括:可通过图形向导生成初始化C代码;提供STM32CubeHAL嵌入式代码库,确保在STM32各个产品之间实现最大限度的可移植性;底层API(LL)提供了一个专家级的快速轻量级层,它比HAL更靠近硬件;
2025-01-18 08:30:00
1674
原创 STM32网络通讯之LWIP下载移植项目设计(十六)
一般对于许多嵌入式系统或单片机,在其资源受限的环境下,要想实现网络通讯,并保证资源的高效利用和稳定的网络通信,我们一般采用一种轻量级的网络协议lwIP。TI公司的STM32芯片一般都会自带一路以太网口,用于网络通讯,但因其内存资源受限,所以都用采用一种小型化、轻量级的lwIP网络协议,只需十几KB的RAM和大约40K的ROM即可运行,既可以在无操作系统环境下工作,也可以与各种操作系统配合使用,使其成为资源受限的嵌入式系统的理想选择。
2025-01-17 09:30:02
2186
原创 STM32网络通讯之CubeMX实现LWIP项目设计(十五)
一般对于许多嵌入式系统或单片机,在其资源受限的环境下,要想实现网络通讯,并保证资源的高效利用和稳定的网络通信,我们一般采用一种轻量级的网络协议lwIP。TI公司的STM32芯片一般都会自带一路以太网口,用于网络通讯,但因其内存资源受限,所以都用采用一种小型化、轻量级的lwIP网络协议,只需十几KB的RAM和大约40K的ROM即可运行,既可以在无操作系统环境下工作,也可以与各种操作系统配合使用,使其成为资源受限的嵌入式系统的理想选择。
2025-01-13 17:37:10
2708
5
原创 STM32之LWIP网络通讯设计介绍(十四)
一般对于许多嵌入式系统或单片机,在其资源受限的环境下,要想实现网络通讯,并保证资源的高效利用和稳定的网络通信,我们一般采用一种轻量级的网络协议lwIP。TI公司的STM32芯片一般都会自带一路以太网口,用于网络通讯,但因其内存资源受限,所以都用采用一种小型化、轻量级的lwIP网络协议,只需十几KB的RAM和大约40K的ROM即可运行,既可以在无操作系统环境下工作,也可以与各种操作系统配合使用,使其成为资源受限的嵌入式系统的理想选择。一般市场上所卖的板子都带这一功能的,需准备开发板一块和网线一根。
2025-01-10 16:47:48
2094
1
原创 STM32之一种双通路CAN总线消息备份冗余处理方法(十三)
在一些对系统可靠性要求很高的应用中、或者传输环境较差的场景下,如何保证CAN总线组网通信中数据传输无缺损或者缺损率极低,是本文章主要解决的问题。本文给出一种方式,采用双通路CAN总线冗余消息处理来传输数据,通过在CAN消息的发送端增加缓存机制和进行冗余备份,在接收端采用查重过滤机制来完成对数据信息处理。
2025-01-08 12:06:58
1304
原创 STM32之CAN通讯(十一)
一般STM32F407芯片都会自带2路CAN接口,分别为CAN1和CAN2,其通讯速度高达1Mb/s,每个CAN总线发送端具备三个发送邮箱,用来区别发送优先级,接收端具备两个具有三级深度的接收 FIFO,用来存储数据。一般从407芯片端口输出的CAN信号抗干扰性比较差,不足以保证通讯的稳定性和可靠性,这时我们就需要通过添加驱动电路,可以增强信号的驱动能力,确保信号在传输过程中不受干扰或衰减,从而提高通讯的稳定性和可靠性。
2025-01-07 17:34:00
2416
原创 Qt之FFmpeg播放器设计(十七)
Qt进行播放器设计,采用自带多媒体模块QMediaPlayer设计时,其底层操作系统提供的解码器有些格式不一定支持,且解码效果有限。这时我们一般采用第三方音视频解码器库进行操作,这里推荐FFmpeg库,用的人比较多采用纯C编写,保证高可移植性和编解码质量,且支持多种音视频格式,提供了录制、转换以及流化音视频的完整解决方案。在Qt平台上开发涉及FFmpeg的应用程序,需要将FFmpeg库集成到你的Qt项目中,利用FFmpeg功能进行音视频处理,本文基于Qt平台,依靠FFmpeg内核库,设计了一款播放器。
2025-01-05 14:17:41
1755
原创 Qt之屏幕录制设计(十六)
利用Qt实现屏幕录制设计,可以通过使用Qt自带的类QScreen、QPixmap、QImage来完成一帧图像的抓取,然后自建一个容器对象Gif和缓存变量GifWriter,来存放抓取的一帧帧图像。本篇文章将使用QT来实现一个简易的屏幕录制功能,下面就让我们一起来实现这个录屏功能吧。通过Qt自带的类QScreen、QPixmap、QImage完成一帧图像的抓取,首先是通过QScreen获取Windows显示的屏幕,然后将抓取屏幕的QRect(x位置,y位置,宽度,高度)窗口尺寸内容而构造的像素图返回。
2025-01-03 15:07:01
1885
原创 Qt之简易音视频播放器设计(十五)
利用Qt进行音视频播放器设计,首先比较方便使用的是Qt自带的音视频播放器类QMediaPlayer,无需第三方插件库,支持多种音频和视频格式,具体支持的格式取决于底层操作系统提供的解码器。QMediaPlayer是Qt多媒体模块中的一个核心类,提供跨平台的音频和视频播放功能,并兼容多种音频和视频格式。本篇文章将使用QT来实现一个简易音视频播放器,下面就让我们一起来实现这个播放器吧。支持多种音频和视频格式,音频格式有MP3、WAV、OGG、AAC、FLAC视频格式有MPEG、AVI、MP4、WM
2025-01-02 17:05:55
1680
原创 Qt之数据库使用(十四)
Qt支持的数据库包括SQLiteMySQLPostgreSQLODBC等。其中,SQLite是Qt默认支持的数据库,无需额外的驱动就可以使用,适合轻量级的应用,不需要多用户、大数据量的场景。对于大型应用,MySQL和PostgreSQL则是更好的选择,它们提供了更强大的数据处理能力。本文将讲解SQLite的设计使用。一、上一步我们在原有的Qt项目上新建一个类,用于专门操作数据库的,这里来定义该类。
2024-12-24 16:47:15
2319
原创 Qt之CAN设计(十三)
Qt框架中并没有提供关于CAN接口的相关模块,需要用户自己根据CAN接口硬件模块,编写底层接口功能函数,然后调用它。一、CANCAN(Controller Area Network)是一种用于连接微控制器和设备的串行总线标准,主要用于实时数据交换,它支持分布式控制或实时控制的串行通信系统,特别适用于那些对时间延迟敏感的应用。CAN通信基于广播模式,任何节点发送的数据可以被网络上所有其他节点接收,每个节点都可以通过发送具有唯一标识符的消息来与其他节点通信。
2024-12-20 19:22:05
2242
原创 Qt之串口设计-线程实现(十二)
Qt框架中提供的一个串口通讯类QtSerialPort,它属于Qt自带的模块类,专门用于进行串行通信,使用时只需要在工程文件pro内添加QT += serialport即可,这种实现方式封装程度高、使用简单,与Qt框架集成紧密,利用Qt的信号与槽机制进行事件处理采用,但给我的感觉在一些高速数据处理时,不是很好用。因此本文推荐采用Windows API调用相关串口功能函数,用于从文件或设备中读取数据。
2024-12-20 15:39:32
1481
原创 Qt之样式表使用(十一)
Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的功能来创建美观和响应式的用户界面。样式表(Stylesheet)在Qt中用于自定义控件的外观,类似于CSS在网页中的作用。Qt样式表允许你改变窗口部件(widgets)的颜色、字体、边距等属性,使你的应用程序更具吸引力。Qt样式表的使用也有多重方式,可以直接在项目中添加代码更换、可以在可视化界面UI上添加更改、也可以通过qss文件导入的方式进行更改。
2024-12-19 17:03:14
1905
原创 Qt之自定义标题栏拓展(十)
Qt自带的窗口标题栏通常遵循操作系统的默认样式和布局,以确保在不同平台上都能提供一致且符合用户期望的用户体验,因此Qt自带的窗口标题栏无法自定义。但我们在Qt设计软件时,经常需要改变窗口标题栏的样式,以满足不同场合用户需求。本文紧接着上一篇博文Qt之修改窗口标题、图标以及自定义标题栏(九)-CSDN博客的基础上,在介绍几种实现自定义标题栏的方法,并提供简单示例。
2024-12-18 17:04:57
2204
原创 Qt之修改窗口标题、图标以及自定义标题栏(九)
在我们利用Qt设计软件时,经常需要修改窗口标题、更改软件图标等之类的操作,更有甚者需要更换标题栏(因为Qt自带的窗口标题栏无法自定义)。这时需要用到QIcon类、QPixmap类等等相关基础功能的操作,以下是关于如何在不同场景中添加图标、修改标题、更换标题栏(自定义标题栏)的简单例子。
2024-12-17 16:10:14
5288
原创 Qt之热键盘使用(八)
Qt实现热键盘/快捷键的使用,比较直接简单的是利用Qt自带的QShortcut类、QKeyEvent类,通过改写相关函数,得以实现功能;也可以通过外部库实现,例如QxtGlobalShortcut库、QHotkey库,它们都是为Qt应用程序提供全局快捷键/热键功能的第三方库。一、键盘在Qt中使用快捷键/热键主要有以下几种方法:使用Qt自带的类,例如,QShortcut类、QKeyEvent类(重写使用外部库QHotkey:QHotkey一个第三方库,是Qt中用于实现全局热键的一个类。
2024-12-14 08:15:00
1300
原创 Qt之截图存为图片或PDF打印(七)
本文利用Qt平台,实现屏幕截图功能,并将截图复制、保存为图片、或打印到PDF中。要实现Qt的截图功能,主要是要调用Qt自带的QScreen类,该类作用是用于获取屏幕信息并进行屏幕截图。利用QApplication方法获取所有屏幕的信息,然后通过QScreen类的grabWindow函数捕获整个屏幕或指定窗口。
2024-12-13 10:53:05
1676
原创 Qt之点击鼠标右键创建菜单栏使用(六)
QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menubar)、多个工具栏(toolbars)、一个状态栏(statusbar)及一个中心部件(centralwidget),是许多应用程序的基础。今天本文主要讲解菜单栏QMenuBar和QMenu,其中QMenu可以嵌入到菜单栏QMenuBar中,也可以作为弹出菜单使用。QMenu是Qt框架中的一个类,用于创建和管理菜单。它提供了丰富的接口来添加菜单项、子菜单以及分隔符。
2024-12-12 16:47:57
1893
原创 Qt之将源代码封装成库文件使用(五)
库文件是计算机上的一类文件,可以把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。在Qt中将源码封装成库文件,通常指的是创建一个动态链接库(.dll)或静态库(.lib/.a),供其他程序使用。本文讲解并演示了Qt将源码打包成库文件的方式,并可以生成静态、或动态、以及debug或release模式、32bit或64bit模式的库文件,并以不同的方式进行实现,比较清晰。最后在讲解下如何在你的项目中使用它。博文中相应的工程代码。
2024-12-11 14:47:49
2286
原创 Qt之第三方库日志log使用(四)
Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用程序功能的控件集合。这些控件库可以提供额外的用户界面元素、功能组件或者优化现有Qt控件的性能和外观。一些常用的Qt第三方控件库有QCustomPlot、QXlsx、QHotkey、QtSerialPort、QsLog等等很多,它们都是开源的、免费的,且基于Qt框架编写,今天本文主要讲解Qt Log第三方控件开源库。Qt Log日志是指在使用Qt框架进行软件开发时,通过Qt提供的日志系统记录下的程序运行时的信息、警告、错误等日志消息。
2024-12-09 15:54:07
2494
原创 Qt之第三方库QXlsx使用(三)
Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用程序功能的控件集合。这些控件库可以提供额外的用户界面元素、功能组件或者优化现有Qt控件的性能和外观。一些常用的Qt第三方控件库有QCustomPlot、QXlsx、QHotkey、QtSerialPort、QsLog等等很多,它们都是开源的、免费的,且基于Qt框架编写,今天本文主要讲解QXlsx第三方控件开源库。
2024-12-06 14:12:32
5958
9
原创 Qt之第三方库QCustomPlot使用(二)
Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用程序功能的控件集合。这些控件库可以提供额外的用户界面元素、功能组件或者优化现有Qt控件的性能和外观。一些常用的Qt第三方控件库有QCustomPlot、QXlsx、QHotkey、QtSerialPort、QsLog等等很多,它们都是开源的、免费的,且基于Qt框架编写,今天本文主要讲解QCustomPlot第三方控件开源库。
2024-12-05 21:26:24
2470
原创 STM32之采用FATFS模块将文件存储到外挂SD卡(十)
上一章节完成了对STM32的SDIO通讯接口和SD卡介绍STM32之SDIO通讯接口和SD卡(九)-CSDN博客,本章将在上一章基础上,采用FATFS模块,实现在外挂SD存储卡上生成文件并对文件进行读写操作,类似电脑上的文件管理功能,方便管理SD卡上的数据。因此要实现此功能,需准备一块带SD卡接口的开发板,一般市场上的完整的开发板子都带此接口。FatFs是一个通用的文件系统(FAT/exFAT)模块,用于在小型嵌入式系统中实现FAT文件系统。
2024-12-04 08:15:00
2168
原创 STM32之SDIO通讯接口和SD卡(九)
当单片机需要保存大量数据时,靠它自身的容量往往是不能满足需求的,一般采取的措施是外挂一个存储器。目前市面上存储器的种类繁多,根据它们各自特点,选择一款最适合单片机存储器,莫过于SD卡了,它不仅价格便宜、体积小、速度快、而且只需要少数几个IO口即可外扩一个高达32GB或以上的外部存储器,容量从几十M到几十G选择范围很大,更换也很方便,编程也简单,是单片机大容量外部存储器的首选。因此要实现此功能,需准备一块带SD卡接口的开发板,在本章中,将向大家介绍,如何通过SDIO通讯接口实现对Micor SD卡数据的读取。
2024-12-03 11:57:09
2259
原创 STM32之ADC采集和DMA传输(八)
本文将讲解ADC采集设计和DMA传输,其中单纯的ADC采集是直接将ADC采集到的结果输出,供使用;而DMA传输设计,则是在ADC采集的基础之上,将ADC采集到的结果值,存储到DMA上,供用户使用。一般MCU都会自带ADC接口,不需要外部ADC芯片,可以直接通过MCU上引脚进行采集信号,不过要注意下采集信号。一般市场上所卖的板子都带这一功能的,因此要实现此功能,需准备开发板一块。
2024-12-02 16:16:48
1907
原创 FIFO队列C实现和KEIL封装lib库文件(十二)
本文将介绍FIFO环形队列的软件实现方式,分为字节循环队列和块状循环队列,采用纯C编写,比较实用,适合学生和各工程师;紧接着再介绍了一种库生成方式,通过keil平台,将源代码文件封装成lib库文件,供开发者使用;这两种方式刚好可以将环形队列的软件代码,通过keil封装成lib库文件,方便大家日常使用。
2024-11-30 08:15:00
1589
原创 Qt之程序打包发布(一)
将Qt程序打包发布的主要原因是为了确保程序能够在没有Qt环境的计算机上运行,用户无需关心Qt环境的安装和配置,只需运行安装包即可使用程序,简化了使用过程。通过打包发布,可以避免因缺少依赖库而导致的程序无法运行的问题,提升了程序的稳定性和可靠性。Qt官方开发使用的动态链接库方式,在发布生成exe程序时,需要复制一大堆dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行,因此Qt官方开发环境里自带了一个工具windeployqt.exe,利用好它,可以一键生成Qt要发布的程序。
2024-11-29 12:33:27
1595
原创 STM32之IIC通讯(七)
IIC(Inter-Integrated Circuit)--通常也称I2C,是一种同步、半双工双向的两线式串口总线,用于连接微控制器(MCU)和各种外围设备(如传感器、存储器等)通信,允许在非常短的距离内以低速进行数据传输。一般MCU都会自带IIC接口,也可以通过高速IO 口模拟 IIC ,不需要驱动芯片,直接有MCU输出到外部总线上。一般市场上所卖的板子都带这一功能的,因此要实现此功能,需准备开发板一块。
2024-11-29 08:15:00
1594
原创 STM32之串口232通讯(六)
一般STM32F407芯片都会自带好几路UART串口,但从407芯片端口输出的串口UART信号为TTL信号,这时我们就需要232驱动芯片,也可以说是电平转换芯片,将TTL信号转换为所需要的232信号,一般市场上所卖的板子都带这一功能的,因此要实现串口RS232通讯功能,需准备STM32F407开发板一块。RS232不管硬件还是软件,其实现的方式还是比较简单的,好入手,更适合初学者。
2024-11-28 11:06:22
2130
原创 STM32之串口UART-485(五)
一般STM32F407芯片都会自带好几路UART串口,但从407芯片端口输出的串口UART信号为TTL信号,这时我们就需要485驱动芯片,也可以说是电平转换芯片,将TTL信号转换为所需要的485信号,一般市场上所卖的板子都带这一功能的,因此要实现串口RS485通讯功能,需准备STM32F407开发板一块。
2024-11-27 12:14:57
3506
原创 STM32之LCD显示-GUI-LVGL(四)
实现LCD液晶显示功能,需准备STM32F407开发板和LCD模块(淘宝上卖的很多)。软件开发平台keil5,GUI采用LVGL-V8.3,开发平台Gui-Guider-1.7.1。准备的一块4.3寸MCU屏,驱动芯片型号为NT35510,分辨率为:800*480,16 位真彩显示。
2024-11-26 15:01:20
2548
原创 STM32之Wife网络显示-上位机(三)
这篇文章是基于上篇 UART-To-Wife(二)的后续拓展使用,主要是关于Qt上位机程序的实现,完成对开发板上串口UART到ESP8266的数据通过Wife转出来后,通过上位机软件对其网络信息进行解析,然后通过UI界面显示出来。该功能可以运用在工程上各个方面,例如监控、无线工业控制、教学等各行业。下面提供的代码,可与上一篇UART-To-Wife(二)直接配套使用,协议是匹配的。代码程序。
2024-11-25 11:55:10
1087
原创 STM32之串口UART转wife功能(二)
要实现UART转Wife功能,需准备主要硬件模块,STM32F407开发板和ESP8266模块(淘宝上卖的很多)。下面提供的代码,基于STM32F407ZGT芯片编写,可直接在原子开发板上运行,也可运行在各工程项目上,但需要注意各接口以及相应的引脚应和原子开发板上保持一致。代码程序。
2024-11-22 17:12:05
1038
单片机STM32F407-Case程序代码例程
2024-11-29
Qt-Case.zip 利用Qt开发软件进行编的例程,为博文提供案例
2024-11-25
嵌入式开发:基于野火STM32的LwIP应用开发指南
2024-11-28
单片机电路设计,原理图,包括一些外围电路设计
2024-11-27
基于原子STM32F407板编写程序
2024-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人