自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ESP8266模块简单连接以及作为作为Station连接“服务器”的问题(ERROR CLOSED)

AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data TerminalEquipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data CircuitTerminal Equipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。每个AT命令行中只能包含一条AT指令;

2024-05-18 23:30:43 657 2

原创 延时函数&软件定时器

简单可以理解为闹钟,到达指定一段时间后,就会响铃。STM32 芯片自带硬件定时器,精度较高,达到定时时间后会触发中断,也可以生成 PWM 、输入捕获、输出比较,等等,功能强大,但是由于硬件的限制,个数有限。软件定时器也可以实现定时功能,达到定时时间后可调用回调函数,可以在回调函数里处理信息。

2024-05-14 14:20:22 718

原创 FreeRTOS任务通知

xTaskNotifyGive() 和 ulTaskNotifyTake()函数用于发送和接收二值信号量和计数型信号量两者发送用法一样!两者区别于ulTaskNotifyTake()里面的参:pdFALSE:指定在成功接收通知后,将通知值清零或减 1(计数型信号量),pdTRUE:把通知值清零(二值信号量);

2024-05-09 20:42:39 752 1

原创 事件标志组

事件标志位:表明某个事件是否发生,联想:全局变量 flag。通常按位表示,每一个位表示一个事件(高8位不算)事件标志组是一组事件标志位的集合, 可以简单的理解事件标志组,就是一个整数。事件标志组本质是一个 16 位或 32 位无符号的数据类型 EventBits_t ,由 configUSE_16_BIT_TICKS决定。虽然使用了 32 位无符号的数据类型变量来存储事件标志, 但其中的高8位用作存储事件标志组的控制信息,低 24 位用作存储事件标志 ,所以说一个事件组最多可以存储 24 个事件标志!

2024-05-05 20:42:31 384 2

原创 队列以及信号量

信号量(Semaphore),是在多任务环境下使用的一种机制,是可以用来保证两个或多个关键代码段不被并发调用。信号量这个名字,我们可以把它拆分来看,信号可以起到通知信号的作用,然后我们的量还可以用来表示资源的数量,当我们的量只有0和1的时候,它就可以被称作二值信号量,只有两个状态,当我们的那个量没有限制的时候,它就可以被称作为计数型信号量。信号量也是队列的一种。二值信号量其实就是一个长度为1,大小为零的队列,只有0和1两种状态,通常情况下,我们用它来进行互斥访问或任务同步。

2024-05-02 15:30:43 687 1

原创 任务的创建与删除

调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。FreeRTOS中开启任务调度的函数是 vTaskStartScheduler() ,但在 CubeMX 中被封装为osKernelStart()。

2024-05-01 13:38:47 22

原创 FreeRTOS

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。

2024-04-30 22:56:52 372 2

原创 链表(基于C语言单向链表)

A的next是B的地址·········(表结构中的结点都能找到与之相关的下一个结点)!最后通过打印运行运行结果:逐个打印出来了ABC的名字!

2024-04-27 13:39:48 511

原创 PWR电源控制

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

2024-02-14 11:24:48 710 1

原创 BKP寄存器与RTC实时时钟

BKP(Backup Registers)备份寄存器BKP可用于存储用户应用程序数据。当VDD(2.03.6V)电源被切断,他们仍然由VBAT(1.83.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位TAMPER引脚产生的侵入事件将所有备份寄存器内容清除RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲存储RTC时钟校准寄存器用户数据存储容量:20字节(中容量和小容量)/ 84字节(大容量和互联型)

2024-02-11 03:28:41 1698 5

原创 SPI通信

STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担可配置8位/16位数据帧、高位先行/低位先行时钟频率: fPCLK / (2, 4, 8, 16, 32, 64, 128, 256)支持多主机模型、主或从操作可精简为半双工/单工通信支持DMA兼容I2S协议STM32F103C8T6 硬件SPI资源:SPI1、SPI2。

2024-02-06 16:49:13 475 1

原创 I2C通信

I2C(Inter IC Bus)是由Philips公司开发的一种通用数据总线两根通信线:SCL(Serial Clock)、SDA(Serial Data)同步,半双工带数据应答支持总线挂载多设备(一主多从、多主多从)注意:SDA和SCL均添加了上拉电阻,默认状态下电阻有弱上拉作用!I2C时序基本单元:起始条件:SCL高电平期间,SDA从高电平切换到低电平终止条件:SCL高电平期间,SDA从低电平切换到高电平。

2024-01-30 23:55:30 735 3

原创 USART串口通信

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里自带波特率发生器,最高达4.5Mbits/s可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2)可选校验位(无校验/奇校验/偶校验)

2024-01-27 14:46:27 619 1

原创 C语言指针

例子:函数指针( Type func(Type1 a,Type1 b) ),与数组相似,函数名func就是函数入口地址,类型为Type(*)(Type1,Type2),与数组不同的是,函数中&func与func数值相同,意义也相同!指针是一个特殊的变量,是C语言里面一个变量(特殊的变量),也用于保存具体值,特殊之处在于指针用于保存内存中的地址,(内存地址是什么?实际没有数组参数一说,最终数组形参会退化为指针,因此,不包含数组实参的长度信息,使用数组名调用时,传递的是0号元素的地址!

2024-01-25 20:25:41 2203

原创 DMA(无须CPU干预)

DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源 12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道) 每个通道都支持软件触发和特定的硬件触发 STM32F103C8T6 DMA资源:DMA1(7个通道)DMA可以进行外设以及储存器之间的数据传输,上面外设可以存放寄存器的地址,相仿,寄存器也可以存放外设的地址,只是单纯一个命名而已,没有规定存放规则!

2024-01-24 20:30:45 774 1

原创 STM32ADC模拟数字转换器

ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC,1us转换时间 输入电压范围:0~3.3V,转换结果范围:0~4095 18个输入通道,可测量16个外部和2个内部信号源 规则组和注入组两个转换单元 模拟看门狗自动监测输入电压范围。只需要开启多个GPIO口,然后在每次ADC转换更新ADC转换通道即可。这样就完成了ADC单次转换;二,ADC数字模拟转换原理。

2024-01-23 17:48:52 633 1

原创 TIM(编码器接口)

后面两个参数的作用和前面的一样,选择TIM_ICPolarity_Rising为不反相,反之TIM_ICPolarity_Falling为反相。Encoder Interface 编码器接口 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度 每个高级定时器和通用定时器都拥有1个编码器接口 两个输入引脚借用了输入捕获的通道1和通道2,所以通道3,4不可用于编码器接口。二,编码器接口基本结构以及工作模式。

2024-01-21 20:42:40 538

原创 TIM定时器(输入捕获)

IC(Input Capture)输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模式,同时测量频率和占空比 可配合主从触发模式,实现硬件全自动测量。使用交叉连接,PWMI模式中配置下降沿触发,每出现一次下降沿,将CNT锁存到CCR2中,但此处不进行CNT清零!选择触发源为TIM_TS_TI1FP1,检测到上升沿立刻执行从模式。

2024-01-20 19:40:05 968

原创 TIM输出计较模式(PWM)

脉冲宽度(PWM)是一种数字信号,常用于控制电路,通常将高电平称为1,低电平称为0.(1)定时器中断输出PWM(不断进入中断,影响控制精度,输出误差也会相对增大)PWM信号保持高电平的时间百分比称为占空比,即高电平的时间/一个周期。(2)利用定时器的PWM的I/O口或复用I/O口(推荐用)连续一个高电平和一个低电平共同持续的时间称为一个周期。亦或通过重映射改变I/O口(通过AFIO)五,PWM 配置()时基单元和输出比较单元。三,STM32F103C8T6的PWM口。

2024-01-19 13:42:53 646 2

原创 STM32内部定时器定时中断和外部时钟源中断

/手动把更新标志位清除!单片机定时器上电会立马进行一次中断,需要在TIM_TimeBaseInit()后面开启中断前面手动清除更新标志位!RCC_APB1PeriphClockCmd,RCC_APB2PeriphClockCmd开启所需要的设备。首先根据需求和单片机型号选择定时器类型以及定时器资源。然后选择时钟源(单片机默认内部时钟源)再然后配置时CN_CNT=72Mhz。

2024-01-17 22:39:00 658

原创 STM32单片机EXTI外部中断的使用

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

2024-01-15 15:54:10 606 3

原创 STM32GPIO

(2)GPIO_Mode_IN_FLOATING 浮空输入。(7)GPIO_Mode_AF_OD 复用开漏输出。(5)GPIO_Mode_Out_OD 开漏输出。(6)GPIO_Mode_Out_PP 推挽输出。(1)GPIO_Mode_AIN 模拟输入。

2024-01-14 10:14:55 489 4

空空如也

空空如也

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

TA关注的人

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