自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32 DWT 实现硬件延时

延时性能:当MCU基于160MHz时钟全速运行时,延时1us时,误差约为356ns;延时1ms时,误差约为523ns。②Cortex-M33内核MCU。①Cortex-M3内核MCU。③Cortex-M4内核MCU。

2024-07-08 22:12:49 203

原创 STM32Cubemx HAL库 移植FreeRTOS源码

Free和RTOS,Free 就是免费的、自由的、不受约束的意思,RTOS 全称是 Real Time Operating System,中文名就是实时操作系统。可以看出 FreeROTS 就是一个免费的 RTOS 类系统,FreeRTOS 是 RTOS 系统的一种,FreeRTOS 十分的小巧,可以在资源有限的微控制器中运行,当然了,FreeRTOS 不仅局限于在微控制器中使用。但从文件数量上来看 FreeRTOS 要比UCOSII 和 UCOSIII 小的多。

2024-05-27 10:51:35 944

原创 STM32 HAL TM1637使用

注意:TM1637在进行读写时需要应该应答信号反馈,当没有应答时容易则一直while循环,这是一个弊端。TM1637属于一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路。本文主要使用MCU是STM32 ,CubeMX+Keil5进行开发,使用HAL库。简介:TM1637可以带动16个按键以及做数码管驱动。

2024-05-15 16:51:22 376

原创 STM32 HAL TM1638读取24个按键

TM1638属于一款LED驱动控制专用电路,其特性如下:引脚定义如下在实际使用中,我们只需要使用三个单片机引脚就可以进行控制。分别是。

2024-05-15 16:11:06 1079

原创 STM32 HAL库 利用CH376进行USB文件读写

CH376芯片 是沁恒的一款文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。同时可以使用 CH376 操作 USB 键盘鼠标,以及打印机等各种 USB 设备。CH376 支持三种通讯接口:8 位并口、SPI 接口或者异步串口CH376芯片在前期使用中,配置也出现问题,主要是INT脚返回不了中断,一但去写就会返回fa报错,后面换了模块有问题,估计是硬件那里有问题。但现在已经解决了注意:在CH376创建文件夹、文件时只能大写英文,小写会出现问题。

2024-04-17 16:51:37 1426

原创 Git 关于SSH密钥的生成

打开 C:\Users\Administrator.ssh 目录, 复制 id_xxxxx.pub 内容。键入命令:ssh-keygen -t ed25519 -C "自己邮箱 "文件里面则是一些信息,如下 在结尾则是你的邮箱。桌面右键鼠标打开 “Git Bash Here”在这里就将刚才复制的放入,并添加密钥就可以了。然后在git操作台就可以进行代码上传与下拉了。搜索SSH,就有一个设置SSH的,进入后。

2024-02-20 10:05:56 519

原创 Keil软件生成bin文件

加上脚本后,还需要将编译后的文件存放于什么位置。首先需要在keil的魔法棒里将运行脚本加上。

2024-02-20 09:14:14 265

原创 STM32 HAL NTC(3950 10k)查表法

NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻。其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化。现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC热敏电阻材料。而图中的下面则是接NTC的接口。

2024-02-02 16:43:28 1659

原创 QT exe软件输出

特点:给别人发送的时候需要先制作成一个压缩包文件,解压即用。

2024-02-02 16:02:27 1065

原创 QT中QComboBox添加点击事件,实现下拉框自动刷新

因为项目需要,在QT中的ui界面添加QComboBox控件,需求是实现控件的点击事件,查了资料,发现这个控件类的本身是没有点击信号可以使用的。但是QT是基于C++的面向对象,有了这个特点,我们就可以继承原来的类,然后里面的方法来实现基类中没有的方法,比如事件。在中添加鼠标点击事件的步骤为首先新建一个类(MyComboBox),,然后在新建的类里面添加事件,mousePressEvent是QT里面的鼠标点击事件,直接就能用,接着在这个mousePressEvent事件函数里面触发自定义的。

2024-02-01 16:29:25 2712

原创 QT 之信号槽

当QT提供的信号槽无法满足我们使用要求的时候,则需要自己去设计自己需求的信号与槽,还是使用connect进行对自定义的信号槽如果想要自己定义信号槽,那么需要重新编写类让其继承Qt某些标准,自己编写的类想要使用信号槽则需要满足以下条件:1、这个类必须从QObject类进行派生 2、在定义类头文件中加入Q_OBJECT宏Q_OBJECT自定义信号则需要满足以下要求:1、信号是类的成员函数2、返回值是 void 类型3、信号的名字可以根据实际情况而定。

2024-01-29 16:30:57 883

原创 QT之 QDebug 调试(一)

还有一种则是当Debug调试完后,需要生成exe调试,则可以通过我们的控制台查看调试的信息。需要打开控制台,则需要修改一些文件。其QDebug 信息调试则如: qDebug()

2024-01-27 17:17:00 787

原创 STM32 单片机重启(查看上次重启原因)

以下代码,识别是那种方式进行复位的,只需要将自己在那种方式复位运行的程序添加进去即刻,在这里面尽量进行一些事件更改,不要进行长时间任务运行。STM32启动后可以识别本次启动是对应哪一种复位源,从而可以根据复位源的状态,做一些特殊处理。RCC_FLAG_PINRST是RESET管脚产生的复位。RCC_FLAG_IWDG1RST是内置看门狗产生的复位。RCC_FLAG_WWDG1RST是外置看门狗产生的复位。RCC_FLAG_PORRST是上电复位(冷启动)RCC_FLAG_SFTRST是软件重启产生的复位。

2024-01-17 17:33:12 2671 2

原创 STM32G030F6P6读写flash失败问题(HAL)

最开始做项目选用的单片机是STM32F030F4P6,但是在后期使用中发现,我的FLASH(16K)不够用了,就选择了STM32G030F6P6来进行项目使用,主要是价格便宜,资源够用。在F030使用的flash拿到G030上来发现不可使用,就进行了一些修改,但是这个时候就出现了报错,在进行flash擦除的时候报错。但是手册给出是64位写,所以这里进行了报错,然后将这里改成下面函数,整个程序的读写就没有问题了,在此问题就得到了解决。返回我打印了这个error到底是多少,发现其值为0x80,发现报的错误是。

2023-12-27 15:50:39 2657

原创 STM32 HAL 使用FATFS文件系统

系统引导扇区:引导程序,以及文件系统信息(扇区字节数/每簇扇区数/保留扇区数等)文件分配表:记录文件存储中簇与簇之间连接的信息根目录:存在所有文件和子目录信息(文件名/文件夹名/创建时间/文件大小)数据区:文件等数据存放地方,占用大部分的磁盘空间FAT文件系统用“簇” 作为数据单元,一个“簇”由一组连续的扇区组成,而一个扇区的大小为512字节。所有的簇从2开始进行编号,每个簇都有自己的地址编号,用户文件和数据都存储在簇中。FATFS是专门用于小型嵌入式系统的通用FAT/exFAT文件系统模块。

2023-12-22 17:15:28 1239

原创 STM32之关于SD卡

SD总线上的通信基于命令和数据位流传输。命令:应用相关命令(ACMD)和通用命令(CMD),通过命令线CMD传输,固定长度48位响应:SD卡接收到命令,会有一个响应,用来反应SD卡状态。有2种响应类型:短响应(48位,格式与命令一样)和长响应(136位)。数据:主机发送的数据 / SD发送的数据。SD数据是以块(Block)形式传输,SDHC卡数据块长度一般为512字节。数据块需要CRC保证数据传输成功。卡识别模式和数据传输模式。系统复位后,主机和SD卡都处于卡识别模式,主机在总线上找设备;

2023-12-22 15:42:23 1412

原创 非阻塞式--无源蜂鸣器

这样就可以实现了,再配合分时操作任务,就可以实现很好的一个效果。在一般项目里面进本上都是这样来进行使用的。在现在很多设备中,大多数产品进行判断时,都是采用非阻塞式来进行运行。首先需要创建一个结构体,用于存储我们需要的变量。阻塞式:程序一直卡在哪里,不能去执行气体任务。非阻塞式:随时可被打断去执行其他任务。那如何使用这个函数呢?

2023-12-17 21:50:18 434

原创 裸机单片机适用的软件架构

单片机通常分为三种工作模式,分别是1、前后台顺序执行法 2、操作系统 3、时间片轮询法。

2023-12-11 19:31:14 1368

原创 宏定义控制printf

我这里没有做优先级区分,如果要做优先级区分,则只需要用一个控制所有的宏,宏在进行开关,这里面用到了串口的一些配置,可以查看下面的文章,也可以自己去搜来查看。在实际开发项目中,发现在调试工程中,使用了很多的打印函数或者其他调试函数,但是在项目结束后,想让其都不工作,在需要的时候在进行打开就行呢?所以就有这宏定义控制打印或者调试函数。

2023-12-11 19:29:09 579

原创 STM32笔记

通过屏蔽位,可以过滤出特定的标识符。在上面的示例中,定时器中断服务函数 TIM_IRQHandler() 首先通过 __HAL_TIM_GET_FLAG() 函数检查是否发生了定时器的更新事件(即更新标志位被置位),然后使用 __HAL_TIM_CLEAR_FLAG() 函数来清除更新标志位。在上面的示例中,我们使用 HAL_CAN_ActivateNotification() 函数来启用 CAN_IT_RX_FIFO0_MSG_PENDING 中断,并在回调函数中处理接收到的 CAN 帧。

2023-11-21 19:02:32 1676

原创 ADC常见的一些滤波算法

对于目前这些ADC采样算法而言,在项目中遇到对应问题去做对应的算法进行优化得到的参数,只能尽量让ADC数据更加符合项目所需,后续遇见其他算法,就继续添加在这里让大家一起用。N值的选取:流量,N=12;液面,N=4 ~ 12;如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入交易系统。如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。

2023-11-07 22:02:22 465

原创 RS485以及MODBUS学习

学习目的:1、什么是485?2、485如何通信?3、如何使用熟能生巧?RS485是一种四总线通信,分别是VCC、GND、485_A、485_B。两根负责通信,两根负责进行供电。硬件层:解决的是数据传输问题,也就是如何将“0”和“1”传输到另外一端设备。软件层:ModBus协议则是解决数据传输的含义和意义那么单片机则是如何进行485通信的?

2023-09-18 23:39:45 485

原创 LVGL基础部件学习笔记

LV_PART_MAIN 类似矩形的背景LV_PART_SCROLLBAR 滚动条LV_PART_INDICATOR 指标,例如用于滑块、条、开关或复选框的勾选框 LV_PART_KNOB 像手柄一样可以抓取调整值LV_PART_SELECTED 表示当前选择的选项或部分LV_PART_ITEMS 如果小部件具有多个相似元素(例如表格单元格)LV_PART_TICKS 刻度上的刻度,例如对于图表或仪表。

2023-01-13 15:46:16 5960 3

原创 LVGL的初步了解以及移植到STM32

是最受欢迎的免费开源嵌入式图形库,可为任何MCU、MPU和显示器类型创建漂亮的用户界面。使用,使用拖放UI编辑器来简化开发。

2023-01-01 14:56:19 4773

原创 针对Linux进行的优化修改

1、修改vim的TAB键值为4个字符首先打开VIM的/etc/vim/vimrcvi /etc/vim/vimrc然后在文件末尾添加以下set ts=42、vim编辑器显示行号在上面的同样操作下,在下一行输入set nu

2022-12-13 16:37:19 151

原创 STM32学习之Keil5软件配置

代码编写环境可以让编写者在代码编写上有一定的好处,从而得到高效的代码编写。本次笔者写的是一些市面上常用的嵌入式开发软件Keil5,在初始化使用软件界面需要进行配置的。主要分为五大部分(文本美化、代码编辑技巧、查找和替换技巧、工程编译问题定位、窗口视图管理)。

2022-11-30 11:24:09 5639

原创 基于STM32的u8g2移植以及学习

U8g2是嵌入式设备的单色图形库。主要应用于嵌入式设备,包括我们常见的单片机使用,最常用的是OLED屏或者LCD屏进行使用的一个库;我们常用的OLED屏其内部原理一个M x n 的像素点阵,想显示什么就得把具体位置的像素点亮起来。对于每一个像素点,有可能是1点亮,也有可能是0点亮;其坐标系如下所示。

2022-11-28 17:45:27 5152 4

原创 C语言将“数字转换成字符串”

根据自己需要将前面的uint8_t可以改成char,下面的uint8_t是使用给OLED屏的。后续有其他的需求再在此后面添加,进行增加其他知识。

2022-11-14 15:06:44 1081

原创 字符串处理

(譬如,数字 0~9、大小写字母以及其它字符)和。正则表达式通常被用来。(称为“元字符”)所组成。

2022-11-05 12:20:12 431

原创 程序规范化编写

如果一个函数只在同一个文件的其它地方调用,那么就应该用 static, static 确保这个函数只在声明它的文件是可见的,这样可以避免和其它库中相同标识符的函数或变量发生混淆。如果有多条语句的话,可以通过大括号来解决。\\}

2022-11-03 11:42:48 668

原创 Linux使用所遇见的问题以及解决方法

1、查看当前网络标志是不是存在。以及打开,直到网络图标是存在的。然后更好为下面的这些源。

2022-11-01 19:24:47 447

原创 C语言——问题总结

枚举是一中类型,可以用来定义变量,可以包含多个枚举成员,而宏是替换,没有类型,也没有多个成员。强调:enum;1、枚举成员的每一个成员都是整数2、分隔符:为逗号‘,’3、可以直接赋值:struct和union都不行。4、枚举的成员直接访问。

2022-10-28 23:08:21 596

原创 在QT 中添加NDK遇见的问题

例如“D:\Program Files”或“D:\Program Files (x86)”都不可以。而该错误则是,在安装这个目录下不能存在空格,也就是不能安装在有空格的地方。

2022-10-28 23:06:46 1254

原创 STM32HAL库使用ESP8266模块

ESP8266一共具有3种工作模式,这三种工作模式softAP 模式,station 模式,softAP + station 共存模式三种。这三种模式对应着三种不同的状态。1、station 模式此时的ESPP8266模块可以当作是一个客户端,可以向服务端进行数据的下载与传输,可以比喻成此时的ESP8266就是一个不能开热点的手机,一般这种模式用于远距离传输。2、softAP 模式处于AP模式的ESP8266,此时就是一个服务端,也就是一个只能开热点,但是没有移动网的热点,一般这种模式用于近距离传输信息。

2022-10-27 18:03:09 4296 3

原创 STM32HAL库利用实现单击、双击、长按

要实现单片机的单击、双击、长按操作则需要理解一下他们的区别是什么可从图中观察到单击在一定周期里有一个低电平,双击则是两个低电平,本次进行的软件 STM32CubeMX + Keil5设计思路是这样的初始化一个全局标记按键中断事件发生后置位标记while死循环中一直检测这个标记,如果被置位那么进行消抖,然后再次检测连接KEY的IO是否处于按下状态,如是则认为本次按键有效第一次按键事件有效后,启动定时器定时300ms。

2022-10-23 17:54:43 4202 2

原创 STM32关于UART的接收方式

STM32的 UART 一般分为和。

2022-10-22 19:38:54 3613

原创 STM32定时器深入学习

STM32定时器分为高级定时器 TIM1和TIM8通用定时器 TIM2、TIM3、TIM4、TIM5基本定时器 TIM6、TIM7三种定时器都是16位的自动装载计数器组成,由一个可编程的预分频器驱动。

2022-10-22 19:02:29 1471

原创 裸机开发之驱动开发

在基础的驱动框架中,有一个加载和卸载函数,这个函数是安装或者卸载这个驱动的将会去处理的函数。当然,这些对应的函数则需要我们自己去按照格式进行操作,如open对应的led_open就是一个函数,看上面的例程就可以看到对应的操作。每个函数指针赋值为函数地址,就代表当应用程序调用对应的文件io函数时,驱动就执行函数指针赋值的对应函数,例如下面的LED驱动例程中的。,每个块都有自己的地址。驱动控制硬件,控制外设,其实就是控制地址,通过地址往寄存器写入、读出控制内核驱动是通过虚拟地址操作,则就需要用到另外的函数,

2022-10-21 17:53:44 1424

原创 裸机开发之驱动开发(中断的实现)

2、在设备树中添加自己的硬件设备信息---添加key3节点-----描述当前设备的的信息内容(中断号) arch/arm/boot/dts/exynos4412-fs4412.dts:实现硬件描述(中断号):就是一个号码,中断控制器管理所有中断的编号,外设连接的引脚就对应了引脚的中断控制器的中断号,有硬件设备----设备的中断号。1、(外设产生中断,驱动要能检测到中断---申请中断(根据中断号))3、在驱动中申请中断,实现中断处理。二、实现驱动工作----中断驱动应该做什么。

2022-10-16 22:52:44 805

原创 数据结构——二叉树、查找、排序

二叉树是n(n>=0) 个节点的有限集合 或者是空集(n=0)由一个根节点以及两颗互不相交、分别称为左子树和右子树的二叉树组成。

2022-10-05 16:12:46 329

FREERTOS实时操作系统源码 9.0.0 2024.6.15

FREERTOS实时操作系统源码 9.0.0 2024.6.15

2024-06-15

FreeRTOS关于2022.12.0版本源码

FreeRTOS关于2022.12.0版本源码

2024-05-27

基于STM32的老人防跌倒程序

基于STM32的老人防跌倒程序

2024-05-27

基于STM32实现的智能窗帘设计程序

基于STM32实现的智能窗帘设计程序

2024-05-27

基于51的16*16显示屏点阵程序

采用4片74HC595进行

2024-05-27

基于51的智能台灯项目(程序)

基于51的智能台灯项目(程序)

2024-05-27

基于STM32的外卖自提柜程序

基于STM32的外卖自提柜程序

2024-05-27

基于51单片机实现的自动输液监控器

硬件设计主要是将所有外设与单片机(STC89C52RC)进行连接,将传感器、按键等外设连接到处理器上,并为整个电路提供电源。本次设计需要红外传感器电路、步进电机控制电路、液体传感器电路、线性按键输入电路、LCD1602显示电路等电路。 系统总体电路图如图1所示 图1 系统总体硬件设计方案 1.1.1硬件设计软件 硬件电路设计采用国产免费软件立创EDA进行原理图绘制、PCB绘制。绘制完毕总体系统硬件电路之后,进行PCB制作,将制作好的PCB板进行焊接,焊接完毕之后在进行硬件电路功能调试。 1.2软件设计方案 软件系统工作如下:首先红外传感器将液滴信息转换为电信号送到中央处理器当中,经过内部的算法计算出液滴速度,并在LCD中显示液滴速度,采用步进电机进行对液滴速度控制;在计算液滴的时候,算法也将分析药瓶中的液体体积,当输液量少于检测设置装置时。将会触发警报提醒医护人员和家属进行换药,避免对病人造成不必要的伤害。

2022-11-16

基于霍尔传感器的出租车计价器设计

(1)出租车计价器硬件设计 硬件电路由以下几个部件组成硬件设计主要包括国产单片机STC89C52RC、霍尔传感器电路、存储单元的设计、时钟电路、显示电路、按键电路以及供电电路等。在硬件设计过程中,充分利用各部件的功能,实现多功能的出租车计价器设计。 (2)出租车计价器软件设计 在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、路程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程、计时和计价等不同的操作启动计价,将根据里程寄存器中的内容计算和判断出行驶路程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。

2022-11-16

多功能饮水机(51单片机、蓝牙、继电器)

当开启电源之后,首先会判断是否有水,如果没有水则不会执行之后的命令(防干烧),同时将开启黄色灯提示。在仿真图中既长按水位监测(P0.5)实现未有水功能,同时控制继电器加水阀实现自动加水(P1.2),当水到达溢出标志位,既按下水满标志位(P0.6)同时黄灯灭(引脚为低电平亮,高电平灭)。当检测到有水时开始进行温度读取(通过)P3.7进行温度读取(这里可以设置读取时间),如果温度低于100°C,则开启温度加热P1.3同时红灯亮。当温度等于100°时,将停止加热,绿灯亮,同时开启计数,当计数(自己设置)达到一定值会进入空闲模式(防千烧),当远程收到信息关闭加热时,也将直接进入空闲模式,当按下加热键或者远程控制加热时,将重复开始的操做。在正常情况下,当有人在饮水机前面时,饮水机还会发出一秒钟声音。

2022-11-16

U8g2单色图形库源码

U8g2是嵌入式设备的单色图形库。主要应用于嵌入式设备,包括我们常见的单片机使用,最常用的是OLED屏或者LCD屏进行使用的一个库;  U8g2支持单色OLED和LCD,包括以下控制器:SSD1305,SSD1306,SSD1309,SSD1322,SSD1325,SSD1327,SSD1329,SSD1606,SSD1607,SH1106,SH1107,SH1108,SH1122,T6963,RA8835,LC7981,PCD8544,PCF8812,HX1230 ,UC1601,UC1604,UC1608,UC1610,UC1611,UC1701,ST7565,ST7567,ST7588,ST75256,NT7534,IST3020,ST7920,LD7032,KS0108,SED1520,SBN1661,IL3820,MAX7219等     可以说,基本上主流的显示控制器都支持,比如我们常见的SSD1306 12864,读者在使用该库之前请查阅自己的OLED显示控制器是否处于支持列表中。

2022-11-16

本资源是用来进行字库转换的,主要用在u8g2上

U8g2是嵌入式设备的单色图形库。主要应用于嵌入式设备,包括我们常见的单片机使用,最常用的是OLED屏或者LCD屏进行使用的一个库;这个工具可以进行中文库的制作。

2022-11-16

使用STM32HAL库进行OLED硬件连接

使用STM32HAL库进行OLED硬件连接

2022-11-13

基于51的OLED小项目

拥有DS1302、超声波、OLED屏、DS18B20做基础,进行时间、温度、超声波距离的显示

2022-08-09

空空如也

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

TA关注的人

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