- 博客(75)
- 资源 (1)
- 收藏
- 关注
原创 基于STM32的hx711称重模块使用
欢迎入群共同学习交流时间记录:2024/11/9一、知识点记录1、hx7111)HX711是一款高精度压力传感器专用的24位模数转换芯片,主要功能是将测得的微小电压信号放大到可以被微控制器读取的范围2)工作电压2.6-5.5V3)引脚介绍引脚描述VDD电源正极GND电源地SCK时钟信号引脚DT数据输入输出引脚4)压力传感器与hx711连线E+ - 电源正极(红线)E- - 电源负极(黑线)A+ - 差分信号A通道+(绿色)
2024-11-09 20:57:00
1272
原创 STM32通过RC522刷卡模块读取IC卡号,读写IC卡数据
1.RC522模块引脚介绍名称接线3.3V电源引脚,接3.3V,接5V会烧坏RST复位引脚,低电平复位GND电源地引脚IRQ内部中断信号输出引脚,暂时没有用到悬空即可MISOSPI协议主机输入引脚MOSISPI协议主机输出引脚SCK时钟引脚SDA片选信号引脚2.RC522模块介绍RC522是一种工作于13.56MHz(高频)的模块,可以与IC卡通过ISO/IEC 14443A协议进行数据交互。
2024-11-05 16:17:33
2413
原创 STM32单片机的独立看门狗实验
可用来检测和解决由软件错误引起的故障;当计数器倒计时到0时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位独立看门狗(IWDG)由专用的低速时钟(LSI:范围30-60KHz,一般认为是40KHz)驱动,即使主时钟发生故障它也仍然有效IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555重装载操作(即写入0xAAAA)也会启动写保护功能键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗。
2024-10-28 17:38:39
569
原创 51单片机定时器/计数器
1、寄存器介绍(1)TMOD方式寄存器T0为例介绍:工作方式选择位M1、M0常用方式为方式1、方式2,方式2低八位装载计数值,高8位装载自动重装载值工作模式选择位C/TC/T为1时计数器模式,以外部引脚3.4/3.5上输入的脉冲为输入信号,C/T为0时定时器模式,以晶振频率为计数信号门控位GATEGATE为0时,仅由TR0、TR1来开启定时器T0、T1,GATE为1时,外部中断引脚为高电平时才能够通过TR0、TR1开启定时器T0、T1(2)TCON控制寄存器。
2024-07-03 20:20:25
1053
原创 51单片机外部中断(按键识别)
1.中断寄存器位介绍(1)TCON定时控制寄存器,位0(IT0)中断INT0请求信号选择位,1表示下降沿信号、0表示低电平信号,位1(IE0)中断INT0信号标志位,1产生中断信号、0未产生中断信号,位2(IT1),位3(IE1)(2)IE中断允许控制寄存器,位0(EX0)中断INT0中断允许位,位2(EX1),位7(EA)总中断允许位(3)IP中断优先级控制寄存器,位0(PX0)中断INT0优先级设定位,默认为0低优先级,位2(PX1)中断INT1优先级设定位。
2024-07-02 18:50:00
2266
原创 STM32使用DMA+空闲中断方式实现串口数据接收
(1)DMA:直接存储器存取(DMA)(Direct Memory Access)也是一个挂载在AHB总线上的外设,用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2(只存在于大容量和互联网产品中)有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
2024-05-23 21:40:47
1255
原创 STM32控制HC-SR04超声模块获取距离
(1)引脚介绍VCC:电源引脚,接单片机3.3/5VGND:电源地Trig:超声信号触发引脚Echo:超声信号接收引脚(2)时序图介绍:通过Trig触发引脚设置一个大于10us的TTL高电平,触发内部循环发送8个40KHZ的超声波,然后通过接收引脚判断接收信号高电平的持续时间,通过声速进行计算来回的距离,如果超过38ms仍未接收到回波也会触发高电平,此时电平持续时间最长。
2024-05-23 21:03:01
767
原创 (十)内存管理
(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
268
原创 (九)任务通知
3.3 发送通知给任务,设置通知值的一个或多个位,可以当做事件组来使用。3.4 发送通知给任务,递增通知值,可以当做计数信号量来使用。(6)无需创建,属于任务控制块中的变量,创建任务时即创建完成。3.1 发送通知给任务,如果有通知未读,不覆盖通知值。(8)只有任务可以等待通知,而不允许中断中等待通知。3.2 发送通知给任务,直接覆盖通知值。(2)每个任务都有一个32位的通知值。发送通知,没有通知值(信号量类型)发送通知,带通知值,并返回原通知值。(3)发送任务通知的几种情况。(7)中断/任务均能发送通知。
2024-03-23 21:49:10
506
原创 (八)软件定时器
(3)定时时间不严格周期,会根据任务执行时间改变,用于对精度要求不严格的场景。(2)硬件定时器不够用的情况下可使用软件定时器扩展剪裁。(1)基于消息队列和任务实现的定时器。开启软件定时器,带中断保护。关闭软件定时器,带中断保护。(5)回调函数不允许阻塞。(4)使用时需要打开。
2024-03-23 15:22:30
369
原创 (七)事件组
(2)不同于信号量的是,信号量是一对一的,而事件可以是一对多和多对一的,即一个任务等待多个事件或多个任务等待同一个事件。(1)用于实现任务与任务、任务与中断之间通信和同步,无数据传输。(3)逻辑与:等待的任意一个事件发生都可以唤醒。(4)逻辑或:等待的事件必须全部发生才会被唤醒。设置事件,即置时间组中对应位为1。
2024-03-21 22:38:21
346
原创 (五)消息队列
队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断与任务间传递信息,实现了任务接收来自于其他任务或中断的不定长度信息。删除队列,删除后所有消息都会被回收不能再使用。出队并删除队列项(带中断保护)出队不删除队列项(带中断保护)从队列尾部入队(带中断保护)从队列首部入队(带中断保护)
2024-03-17 20:02:32
676
原创 (四)任务管理
(1)就绪态:处于就绪列表的任务,可被任务调度器调度进行任务切换,初始化的任务就处于就绪态(2)阻塞态:从就绪列表中移除,添加到阻塞列表中的任务,不可被任务调度器调度进行任务切换,等待(阻塞时间结束/得到信号量)加入到就绪列表后才可以被调度器调度(3)运行态:正在运行的任务处于运行态(4)挂起态:从就绪列表或阻塞列表中移除加入到挂起列表的任务,任务调度器不可见此类任务,需要调用恢复函数进行恢复就绪态(1)挂起任务函数(2)任务恢复函数,将任务从挂起状态恢复到就绪状态。
2024-03-17 16:22:20
389
原创 (二)移植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
1871
原创 QT的一些小操作
(1)在新的线程中可以使用QThread的静态方法msleep、sleep、wait等进行延时。(2)在主线程中使用以下代码进行延时不会阻塞线程。
2024-03-15 23:44:32
604
原创 (一)列表和列表项
(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
422
原创 STM32使用软件SPI协议操作TFT18彩屏
(1)SPI设备通过4根线进行通信,CS片选线,选择从设备,SCK时钟线,由主设备产生时钟,主机MOSI线连从机MOSI线,由主机向从机发送信息,主机MISO线连接从机MISO线,由从机向主机发送信息(2)SPI分为4种通信方式模式0:CPOL=0,CPHA=0,空闲时SCK时钟线为低电平,在奇数边沿进行数据采集,在偶数边沿时进行数据变换,数据采集在上升沿,数据变换在下降沿。
2024-02-20 22:18:21
2957
原创 STM32的FLASH操作
(1)flash大小64K,地址0x08000000-0x08010000(2)此芯片内存大小属于中容量产品,根据数据手册可知中容量产品一个扇区的大小为1K(3)我们在这里需要知道的点就是,可以将数据保存在flash中实现掉电保存。
2024-02-20 01:02:53
3186
1
原创 STM32输出PWM波控制180°舵机
(1)脉冲宽度调制(2)占空比:高电平时间占整个周期时间的比例(3)STM32通过定时器实现PWM时具有两种模式PWM1模式:向上计数模式下,CNT当前计数寄存器的值小于CCR比较寄存器的值时输出有效电平,大于时输出无效电平,向下计数模式下,CNT当前计数寄存器的值小于CCR比较寄存器的值时输出无效电平,大于时输出有效电平。
2024-02-08 22:16:41
2857
原创 STM32控制JQ8400语音播报模块
标示说明ONE LINE一线操作引脚BUSY忙信号引脚,正在播放语音时输出高电平RX串口两线操作接收引脚TX串口两线操作发送引脚GND电源地引脚DC-5V电源引脚,3.3-5VDAC-RDAC输出右声道引脚DAC-LDAC输出左声道引脚SPK-喇叭-引脚SPK+喇叭+引脚。
2024-02-08 02:00:06
4263
原创 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
2004
原创 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
1715
原创 STM32控制DS18B20温度传感器获取温度
(1)测温范围-55℃~+125℃,在-10℃到+85℃范围内误差为±0.4(2)返回的温度数据为16位二进制数据(3)STM32和DS18B20通信使用单总线协议,仅通过一个端口即可进行通信(4)具有掉电保护功能, DS18B20 内部含有 EEPROM ,通过配置寄存器可以设定数字转换精度和报警温度,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
2024-01-28 23:02:42
5973
原创 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
2931
2
原创 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
1976
原创 c语言不定参数
(1)定义void fun1(参数类型 argName,...);示例:(2)获取不定参数的值#include <stdarg.h> //包含头文件//定义结构体变量//开始遍历不定参数//获取一个不定参数的值,type:int整数、double小数、char*字符串//结束遍历。
2024-01-22 13:14:47
1702
原创 QTForAndroid环境搭建
QT5.12.7+JDK1.8.0_231+NDK19.2.5345600+SDK26.1.1,搭建安卓环境需要版本一一对应。
2024-01-21 17:38:55
3282
2
基于esp32cam的车牌识别
2024-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人