自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 freeRtos事件组的使用

创建3个任务,任务1:累加100000000,然后设置事件bit 0;任务2:累减5000000次,然后设置事件bit 1;

2023-12-20 09:40:44 571

原创 freeRtos互斥量的使用

所以二进制并不能保证是谁上锁谁解锁,引入互斥量本质并没有解决这个问题,还是要程序员去解决。引入互斥量可以去解决优先级翻转的问题。

2023-12-15 13:57:56 421

原创 freeRtos信号量的使用

"give"给出资源,计数值加1;"take"获得资源,计数值减1。

2023-12-14 10:13:38 362

原创 定时器TIM HAL库+cubeMX(下)

配置成上升沿检测,用来检测通道x上升沿到来,检测到上升沿后将计数值清0,再配置成下降沿检测检测通道x下降沿到来,高电平期间,计时器计数个数:N * (ARR+1) + CCRx2。计数器计数频率=定时器时钟频率/(psc+1),取倒数就是计数器计一个数需要的时间。高电平的持续时间=计数器个数*计数器计一个数需要的时间.

2023-12-09 13:07:48 293

原创 定时器TIM HAL库+cubeMX(上)

定时器时钟源APB1 36MHz。

2023-12-08 15:09:35 867

原创 freeRtos队列的使用

队列是一个环形缓冲区很多生产者生产很多数据,很多消费者读数据,唤醒之后首先是执行高优先级的,同等优先级先执行等待时间长的。无论是写数据还是读数据都会有一个超时时间,写数据当队列已经满了就等待一会,当读数据队列已经空了可以等待一会。

2023-12-07 16:42:53 546

原创 freeRtos同步互斥与通信

单独执行一个任务可能只需要2s中,两个任务竞争可能需要4s的时间,需要让任务2在任务1运行期间进入Blocked状态,让出CPU资源才能提高效率。

2023-12-07 10:34:03 156

原创 Freertos任务管理

正在执行的任务状态是running,其他执行的等待执行的任务状态是ready。

2023-12-06 16:52:51 248

原创 freeRTOS创建任务

TCB结构体得事先分配好栈,栈要事先分配好定义一个数组。同时还要配置Idle线程。配置这个函数要先配置。

2023-12-04 16:32:43 921

原创 单片机_RTOS_架构

对于每一个任务都有一个TCB_t 结构体,对于这个结构体可以使用动态分配也可以静态分配。动态分配在程序里面使用 xTaskCreate();去掉无关的代码:LCD等。

2023-11-29 16:21:57 534

原创 IWDG和WWDG HAL库+cubeMX

HAL_IWDG_Init //使能IWDG,设置预分频系数和重装载值等HAL_IWDG_Refresh //把重装载寄存器的值重载到计数器中,喂狗/* IWDG 寄存器基地址 *//* IWDG 初始化参数 *//* 预分频系数 *//* 重装载值 *///设置预分频系数和窗口值等//重装载计数器,即喂狗/* WWDG 寄存器基地址 *//* WWDG 初始化参数 *//* 预分频系数 *//* 窗口值 *//* 计数器值 *//* 提前唤醒中断使能 */

2023-11-28 23:46:03 291

原创 串口通信 HAL库+cubeMX

发送数据是主观上的,所以用HAL_UART_Transmit();,接收数据是被动的,一般利用中断完成接收。

2023-11-27 17:08:19 410

原创 EXIT外部中断 HAL库+cubeMX

1.系统内核2.中断管理3.选择抢占优先级和响应优先级,共有5个等级,在这里就使用编写代码时最常用的2位抢占优先级2位响应优先级。4.勾选使能选项,后面的两个零,第一个代表抢占优先级的等级,第二个代表子优先级的等级。

2023-11-24 10:33:31 632

原创 IIC驱动OLED(SSD1306) HAL库+CubeMX

【代码】IIC驱动OLED HAL库+CubeMX。

2023-11-23 22:25:55 1380

原创 GPIO HAL库+CubeMX

以正点原子精英版为例: 2.cubeMX生成3.编写自己的需要的LED驱动文件(BSP)三.GPIO输入四.GPIO相关函数

2023-11-23 16:58:46 490

原创 计算机存储器

手机的主存 一般是主存,机身存储是辅存。手机从APP存储在辅存里面,辅存的读写速度慢,不能直接跟CPU进行数据交互。想要获取数据,要先从辅存到主存。

2023-11-21 21:55:09 119

原创 计算机系统概述

CPU=运算器+控制器。

2023-11-20 22:03:35 363

原创 STM32 内部Flash

STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程。

2023-11-16 17:05:18 118

原创 STM32 OLED(IIC驱动)

【代码】STM32 OLED(IIC驱动)

2023-11-14 13:51:28 416

原创 STM32 驱动OLED显示屏(8080驱动)

OLED,即有机发光二极管(Organic Light-Emitting Diode),LCD 都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示, OLED 效果要来得好一些。以目前的技术, OLED 的尺寸还难以大型化,但是分辨率确可以做到很高。OLED优点:1.自发光,不需要背光 2.功耗更低,节能 3.对比度高,色彩鲜艳OLED缺点:1.烧屏 2.价格昂贵 3.低频频闪。

2023-11-14 00:09:28 2421

原创 MPU6050

MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度16位ADC采集传感器的模拟信号,量化范围:-32768~32767加速度计满量程选择:±2、±4、±8、±16(g)陀螺仪满量程选择: ±250、±500、±1000、±2000(°/sec)

2023-11-11 23:07:59 454

原创 STM32 舵机操控

180°舵机是一种根据输入PWM信号占空比来控制输出角度的装置输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~2.5v。

2023-11-10 21:22:51 912

原创 STM32 看门狗

WDG(Watchdog)看门狗看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性 看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号 STM32内置两个看门狗独立看门狗(IWDG):独立工作,对时间精度要求较低 窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用。

2023-11-09 16:24:29 174

原创 PWR简介

PWR(Power Control)电源控制PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间。

2023-11-07 16:54:47 1007 1

原创 RTC实时时钟和BKP

Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量世界上所有时区的秒计数器相同,不同时区通过添加偏移来得到当地时间。

2023-11-06 16:05:08 175 1

原创 STM32 SPI通信

SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)同步,全双工支持总线挂载多设备(一主多从)SCK:时钟线MOSI和MISO分别用于发送和接收的两条线路,MOSI是主机输出从机输入,MISO是主机从从机接收数据的线路。

2023-11-02 15:45:17 161

原创 STM32 IIC通信

两根通信线:SCL(Serial Clock)串行时钟线、SDA(Serial Data)串行数据线同步,半双工带数据应答支持总线挂载多设备(一主多从、多主多从)相同芯片挂载在同一个总线,需要用到器件地址的可变部分,一般器件的最后几位是在电路中可变的,一般由器件引脚确定。

2023-10-30 16:56:13 324 1

原创 STM32 USART通信

串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件。

2023-10-27 17:12:23 111 1

原创 STM32 DMA直接存储器

DMA(Direct Memory Access)直接存储器存取DMA可以提供外设(外设寄存器、ADC的数据寄存器、串口的数据寄存器等)和存储器(运行内存SRAM和程序存储器Flash)或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道) 每个通道都支持软件触发和特定的硬件触发STM32F103C8T6 DMA资源:DMA1(7个通道)

2023-10-27 00:19:46 169 1

原创 STM32 ADC

ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间输入电压范围:0~3.3V,转换结果范围:0~409518个输入通道,可测量16个外部和2个内部信号源规则组和注入组两个转换单元(ADC增强功能)模拟看门狗自动监测输入电压范围STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道。

2023-10-25 11:22:17 48 1

原创 定时器编码器接口

Encoder Interface 编码器接口编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度每个高级定时器和通用定时器都拥有1个编码器接口两个输入引脚借用了输入捕获的通道1和通道2。

2023-10-24 17:09:08 110

原创 定时器TIM

TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断(定时触发中断),STM32中定时器的基准时钟都是72MHz,对72MHz记72个数,那么1MHz就是1us的时间16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时(预分频器设置最大2的16次方,自动重装寄存器设置最大2的16次方,得到72000000/65536/65536取倒数)

2023-10-19 17:08:12 399

原创 STM32中断系统

EXTI(Extern Interrupt)外部中断EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序,引脚电平发生变化就申请中断。支持的触发方式:上升沿/下降沿/双边沿/软件触发支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断(PA1、PB1不能同时触发中断)通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒。

2023-10-18 17:11:41 81 1

原创 光敏电阻/热敏电阻/红外接收管传感器

传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化。光线越强,光敏电阻的阻值就越小,温度越高,热敏电阻的阻值就越小。红外光线越强,红外接收管的阻值就越小。

2023-10-18 11:31:56 309 1

原创 通用和复用功能I/O(GPIO和AFIO)的使用

如果输入电压比3.3V还要高上方的二极管就会导通,输入电压产生的电流就会直接流入VDD,如果输入电压比0V还要低,相对于VSS就会产生负电压,下方二极管导通,电流会从VSS流出,不会从内部电路汲取电流1.LED:发光二极管,正向通电点亮,反向通电不亮(长脚是正极,短脚是负极,内部小的是正极,大的是负极)2.有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定3.无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

2023-10-17 15:51:04 4399

原创 STM32新建标准库工程

解压得到下载后的固件库Libraries库函数的文件(重点)

2023-10-16 17:16:38 106 1

原创 STM32基本介绍

Cortex-M3的内核,由内核引出三条总线ICode(指令总线)、DCode(数据总线)、System(系统总线)。SRAM用于存储程序运行时的变量数据。AHB(先进高性能总线)用于挂载主要的外设的,APB(先进外设总线)用于连接一般外设,APB2的性能比APB1高,APB2和AHB同频率的都是72MHz,APB1一般是36MHz。DMA做简单的数据搬运的,它可以拥有和CPU一样的总线控制权,用于访问外设小弟的,需要搬运数据时,就会发送DMA请求。

2023-10-16 16:24:44 208 1

原创 CV_8UC1,CV_32FC3,CV_32S等参数的含义

如果图像是32位或64位浮点型(32-bit floating-point or 64-bit floating-point),像素值便要乘以255。S|U|F: S--代表---signed int---有符号整形 U--代表--unsigned int--无符号整形 F--代表--float---------单精度浮点型。channels = 1:灰度图片--grayImg---是--单通道图像。channels = 3:RGB彩色图像---------是--3通道图像。

2023-10-14 21:28:07 897 2

原创 opencv 像素值的读写

函数at()用于读取矩阵中的某个像素,或者对某个像素进行赋值操作。

2023-10-11 23:35:26 68

原创 计算机读取颜色及opencv的图像色彩模式

计算机中图片颜色通道一般采用RGB进行排列,opencv在读取图片时,按BGR读取.如果想使用RGB顺序的影像数据,需要进行转换。

2023-10-11 16:26:30 467

空空如也

空空如也

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

TA关注的人

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