自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KINO32的博客

知识学习,博客记录。

  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 (十)内存管理

(1)内存管理使用heap_1.c-heap_5.c文件,初始化时根据宏定义分配指定大小内存(2)heap_1:申请连续内存块,不能释放内存,申请完毕就会申请失败(3)heap_2:使用最佳匹配算法,不能用于内存申请和释放是随机大小的应用,不能将相邻的两个小内存块合并(4)heap_3:使用c中的malloc和free方法申请释放内存,需要在startup.s启动文件中设置Heap_Size堆的大小。

2024-03-24 14:20:36 140

原创 (九)任务通知

3.3 发送通知给任务,设置通知值的一个或多个位,可以当做事件组来使用。3.4 发送通知给任务,递增通知值,可以当做计数信号量来使用。(6)无需创建,属于任务控制块中的变量,创建任务时即创建完成。3.1 发送通知给任务,如果有通知未读,不覆盖通知值。(8)只有任务可以等待通知,而不允许中断中等待通知。3.2 发送通知给任务,直接覆盖通知值。(2)每个任务都有一个32位的通知值。发送通知,没有通知值(信号量类型)发送通知,带通知值,并返回原通知值。(3)发送任务通知的几种情况。(7)中断/任务均能发送通知。

2024-03-23 21:49:10 412

原创 (八)软件定时器

(3)定时时间不严格周期,会根据任务执行时间改变,用于对精度要求不严格的场景。(2)硬件定时器不够用的情况下可使用软件定时器扩展剪裁。(1)基于消息队列和任务实现的定时器。开启软件定时器,带中断保护。关闭软件定时器,带中断保护。(5)回调函数不允许阻塞。(4)使用时需要打开。

2024-03-23 15:22:30 241

原创 (七)事件组

(2)不同于信号量的是,信号量是一对一的,而事件可以是一对多和多对一的,即一个任务等待多个事件或多个任务等待同一个事件。(1)用于实现任务与任务、任务与中断之间通信和同步,无数据传输。(3)逻辑与:等待的任意一个事件发生都可以唤醒。(4)逻辑或:等待的事件必须全部发生才会被唤醒。设置事件,即置时间组中对应位为1。

2024-03-21 22:38:21 287

原创 (六)信号量

(1)创建互斥量(2)创建递归互斥量(3)删除互斥量(4)获取互斥量(5)释放互斥量(6)获取递归互斥量(7)释放递归互斥量。

2024-03-19 00:24:18 360

原创 (五)消息队列

队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断与任务间传递信息,实现了任务接收来自于其他任务或中断的不定长度信息。删除队列,删除后所有消息都会被回收不能再使用。出队并删除队列项(带中断保护)出队不删除队列项(带中断保护)从队列尾部入队(带中断保护)从队列首部入队(带中断保护)

2024-03-17 20:02:32 388

原创 (四)任务管理

(1)就绪态:处于就绪列表的任务,可被任务调度器调度进行任务切换,初始化的任务就处于就绪态(2)阻塞态:从就绪列表中移除,添加到阻塞列表中的任务,不可被任务调度器调度进行任务切换,等待(阻塞时间结束/得到信号量)加入到就绪列表后才可以被调度器调度(3)运行态:正在运行的任务处于运行态(4)挂起态:从就绪列表或阻塞列表中移除加入到挂起列表的任务,任务调度器不可见此类任务,需要调用恢复函数进行恢复就绪态(1)挂起任务函数(2)任务恢复函数,将任务从挂起状态恢复到就绪状态。

2024-03-17 16:22:20 333

原创 (三)创建任务

函数获取空闲任务的信息。

2024-03-17 13:30:07 346

原创 (二)移植FreeRTOS到STM32中

(7)将FreeRTOS源码目录下的FreeRTOS/Source/portable文件夹下的MemMang和RVDS文件夹复制到STM32项目的freertos/port文件夹下,其中MemMang文件夹下是不同的内存管理文件,一般选择heap_4.c文件,RVDS/ARM_CM3文件夹下存放的是单片机m3内核,不同单片机根据不同内核进行选择。(5)将FreeRTOS源码目录下的FreeRTOS/Source/include文件夹下的.h头文件全部复制到STM32项目的freertos/inc文件夹下。

2024-03-16 19:40:02 1301

原创 QT的一些小操作

(1)在新的线程中可以使用QThread的静态方法msleep、sleep、wait等进行延时。(2)在主线程中使用以下代码进行延时不会阻塞线程。

2024-03-15 23:44:32 554

原创 (一)列表和列表项

(1)列表 -> c语言中的链表(2)列表项 -> c语言中的节点(3)使用到的文件list.c和list.h和(1)List_t列表(链表)结构体(2)ListItem_t列表项(节点)结构体(3)函数初始化链表(4)函数初始化节点(5)函数将节点插入到链表的结尾(6)函数,按照升序插入节点到链表中(7)函数将节点从链表中删除(8)其他还有一些宏定义可查询节点数量等。

2024-03-12 23:18:57 339

原创 STM32使用软件SPI协议操作TFT18彩屏

(1)SPI设备通过4根线进行通信,CS片选线,选择从设备,SCK时钟线,由主设备产生时钟,主机MOSI线连从机MISO线,由主机向从机发送信息,主机MISO线连接从机MOSI线,由从机向主机发送信息(2)SPI分为4种通信方式模式0:CPOL=0,CPHA=0,空闲时SCK时钟线为低电平,在奇数边沿进行数据采集,在偶数边沿时进行数据变换,数据采集在上升沿,数据变换在下降沿。

2024-02-20 22:18:21 1517

原创 STM32的FLASH操作

(1)flash大小64K,地址0x08000000-0x08010000(2)此芯片内存大小属于中容量产品,根据数据手册可知中容量产品一个扇区的大小为1K(3)我们在这里需要知道的点就是,可以将数据保存在flash中实现掉电保存。

2024-02-20 01:02:53 829

原创 ESP8266-01s通过MQTT协议数据上云

时间记录:2024/2/17。

2024-02-18 00:03:31 1390

原创 esp8266-01s WIFI模块使用(一)- AT指令

时间记录:2024/2/15。

2024-02-15 23:03:25 1667

原创 STM32的ADC电压采集

时间记录:2024/2/9。

2024-02-09 17:47:37 2571

原创 STM32输出PWM波控制180°舵机

(1)脉冲宽度调制(2)占空比:高电平时间占整个周期时间的比例(3)STM32通过定时器实现PWM时具有两种模式PWM1模式:向上计数模式下,CNT当前计数寄存器的值小于CCR比较寄存器的值时输出有效电平,大于时输出无效电平,向下计数模式下,CNT当前计数寄存器的值小于CCR比较寄存器的值时输出无效电平,大于时输出有效电平。

2024-02-08 22:16:41 1168

原创 STM32控制JQ8400语音播报模块

标示说明ONE LINE一线操作引脚BUSY忙信号引脚,正在播放语音时输出高电平RX串口两线操作接收引脚TX串口两线操作发送引脚GND电源地引脚DC-5V电源引脚,3.3-5VDAC-RDAC输出右声道引脚DAC-LDAC输出左声道引脚SPK-喇叭-引脚SPK+喇叭+引脚。

2024-02-08 02:00:06 1815

原创 STM32通用定时器、计数器

(1)通用定时器时钟频率介绍内部时钟AHB为72MHz,经过APB1预分频器2分频变为36MHz,TIMxClk定时器时钟由时钟树可以看出,如果APB1预分频系数不为1则频率x2,所以频率为72MHz(2)定时时间计算1.2.1 TIMxCLK的频率为72MHz,一个时钟周期时间为1/TIMxCLK=1/72M(s)

2024-01-30 22:51:51 704

原创 STM32控制DHT11温湿度传感器模块获取温湿度数据

(1)VCC:电源引脚,3.3-5.5V(2)DATA:数据输入输出引脚(3)NC:保留引脚,悬空即可(4)GND:电源地引脚(1)一次完整的数据传输为40bit,高位先传(2)40bit数据介绍:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验数据,前四byte数据值相加之和等于校验值。

2024-01-29 22:05:48 894

原创 STM32控制DS18B20温度传感器获取温度

(1)测温范围-55℃~+125℃,在-10℃到+85℃范围内误差为±0.4(2)返回的温度数据为16位二进制数据(3)STM32和DS18B20通信使用单总线协议,仅通过一个端口即可进行通信(4)具有掉电保护功能, DS18B20 内部含有 EEPROM ,通过配置寄存器可以设定数字转换精度和报警温度,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。

2024-01-28 23:02:42 1932

原创 STM32实现软件IIC协议操作OLED显示屏(2)

(1)显示分辨率128*64点阵(2)IIC作为从机的地址0x78(3)操作步骤:主机先发送IIC起始信号S,然后发送OLED的地址0x78,然后获取校验位ACK,接着发送控制字节,告诉OLED接下来发送的一个字节数据是指令字节还是数据字节,Co=0,接下来只包含数据,D/C=0时,接下来的是指令字节,D/C=1时,接下来的是数据字节,最后发送一个IIC结束信号1.3.1 写指令代码vIICStop();1.3.2 写数据代码vIICStop();

2024-01-27 02:40:15 1798

原创 STM32实现软件IIC协议操作OLED显示屏(1)

(1)协议介绍IIC(又称I2C,Inter-Integrated Circuit),即集成电路总线,是一种两线式串行总线,由PHILIPS公司开发,用于连接微控制器及其外围设备。多用于主机和从机在数据量不大且传输距离短的场合下的主从通信。I2C总线由数据线SDA和时钟线SCL构成通信线路,既可用于发送数据,也可接收数据,是一种半双工通信协议。总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。(2)传输模式标准模式:100K bit/s快速模式:400K bit/s。

2024-01-25 21:43:16 896

原创 QT发送request请求

时间记录:2024/1/23。

2024-01-23 22:53:43 771

原创 QT开发低功耗蓝牙BLE连接ECB02模块进行数据收发

时间记录:2024/1/22。

2024-01-23 00:28:51 1049

原创 c语言不定参数

(1)定义void fun1(参数类型 argName,...);示例:(2)获取不定参数的值#include <stdarg.h> //包含头文件//定义结构体变量//开始遍历不定参数//获取一个不定参数的值,type:int整数、double小数、char*字符串//结束遍历。

2024-01-22 13:14:47 1006

原创 QTForAndroid环境搭建

QT5.12.7+JDK1.8.0_231+NDK19.2.5345600+SDK26.1.1,搭建安卓环境需要版本一一对应。

2024-01-21 17:38:55 1403

原创 QT+opencv源码编译

欢迎入群共同学习交流时间记录:2024/1/20QT5.12.7+cmake3.22.0+opencv4.5.4(1)下载opencv源码,然后安装,opencv的安装即对源码的解压过程,解压后的文件目录如下(2)opencv安装解压后的目录介绍:(3)配置环境变量,将cmake和QT的mingw32编译器的路径添加到Path环境变量中(注意:QT两个路径)(4)QT的两个路径,一个是gcc和g++所在的路径,一个是qmake所在的路径(5)打开cmake-gui界面,"Where is the

2024-01-20 23:28:52 1959 4

原创 QT操作数据库

时间记录:2024/1/20。

2024-01-20 17:30:09 1373

原创 QT串口操作

串口UART/USART,同步/异步数据收发协议,包含起始位、数据位、奇偶校验位、停止位、波特率和流控,收发数据双方的配置需要一致样式设置(1)设置下拉按钮(2)设置下拉按钮图片(3)设置下拉列表框(4)设置下拉列表元素4.14.2 为QComboBox对象设置view为QListView。

2024-01-18 23:24:21 329

原创 QT网络通信-TCP、UDP通信

时间记录:2024/1/17pro文件添加模块network。

2024-01-17 22:29:13 554

原创 QT线程QThread

(1)一个应用程序至少有一个进程,QProcess类开启新的进程(2)一个进程至少会有一个线程QThread。

2024-01-16 22:21:26 391

原创 QT属性动画

属性动画类为QPropertyAnimation,类似于CSS的@keyframes关键帧。

2024-01-16 00:05:56 415

原创 QT图表-折线图、曲线图

时间记录:2024/1/15。

2024-01-15 20:43:10 1078

原创 QT绘图类QPainter

4.2 drawPolygon:绘制多边形,参数为QPolygon类,使用setPoints/setPoint方法设置绘制点。(7)setRenderHint方法设置绘图抗锯齿,使得绘制的图形更加光滑。(8)update方法更新绘制,重新调用paintEvent方法绘图。(6)QBrush类设置画刷对象,绘制图形时填充的颜色。(5)QPen类设置画笔对象,绘制图形时边框的颜色。(2)moveTo方法移动绘制点到某位置。(4)cubicTo方法绘制贝塞尔曲线。(3)lineTo方法绘制线段到某点。

2024-01-14 17:33:21 905

原创 QT文件操作

(2)QTextCodec类的静态方法codecForName来指定编码,toUnicode方法将QByteArray数据以指定编码转为QString数据。静态方法getOpenFileName弹出文件选择框,选择要打开的文件,返回打开文件的路径+文件名。(2)open:打开文件,传入参数,打开方式只读、只写、读写、追加。(1)setFileName:设置要打开的文件路径+文件名。(1)QTextStream的setCodec方法指定编码。(3)写入时使用flush方法将缓存中的数据刷新进文件保存。

2024-01-10 22:56:43 526

原创 QT组件学习(2)

(1)tabsCloseable:值为true时显示关闭按钮,同时需要设置removeTab(int index)属性来设置点击删除当前tab。(1)scrollArea的widget大小比scrollArea的大小要大时会出现滚动条。(1)echoMode:设置显示类型,可设置密码类型,输入时只显示黑点。(1)Modal:值为true时,弹出对话框时,其他界面变灰不可点击。(9){m,n}:匹配至少m个字符,最多n个字符。(3)“*”:匹配0个或多个前导字符。(4)“+”:匹配1个或多个前导字符。

2024-01-09 23:32:05 546

原创 QT布局组件

时间记录:2024/1/8。

2024-01-08 21:06:09 383

原创 QT组件学习

2.2 对于同一个QWidget中放置的单选按钮组件默认属性是互斥的,即只能选中一个,可以设置Exclusive属性为false取消自动互斥。(4)toggled(bool checked):开关反转信号,要使用此信号需要设置checkable属性为true。4.2 三态介绍,未选中、半选、选中三种状态,要使复选按钮具有半选状态需要设置tristate属性为true。5.3.2 左边框border-left:3px solid red;(1)toggled(bool checked):选中状态切换信号。

2024-01-07 16:54:35 524 1

原创 QT项目中添加资源文件和使用qss样式

时间记录:2024/1/6。

2024-01-06 22:30:48 512 1

基于esp32cam的车牌识别

通过ESP32CAM单片机+摄像头实时拍照,结合百度智能云的车牌识别接口进行车牌识别,并将识别结果通过ESP32CAM的串口发送出去,适用于需要简单的车牌识别结合单片机做项目的人群,项目中需要修改百度智能云的token为自己的,本人的token已进行删除

2024-03-17

空空如也

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

TA关注的人

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