自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 任务延时函数

心跳周期是15毫秒。

2024-03-23 17:06:09 106

原创 创建和运行任务

【代码】创建和运行任务。

2024-03-23 17:02:26 158

原创 FreeRTOS + Arduino Uno LED 闪烁

【代码】FreeRTOS + Arduino Uno LED 闪烁。

2024-03-23 16:29:27 128

原创 Freertos

中断,类似闹钟,中断函数调用时主函数转而执行某内容,这样会让程序效率低下、冗杂。rtos特点为实时性,可靠性,安全性。

2024-03-23 16:04:19 1605

原创 FLyMCU串口下载&STLINK 下载

2024-02-27 21:46:45 90

原创 USART串口数据包

如何避免包头包尾与载荷数据重复?简单来说就是 ,限制数据长度/限制数据取值的范围/增加包头包尾数量,包头包尾都需要吗?不一定各种数据转化为字节流想发送float 16 32 位数据 用uint8_t 指针把他们当字节数组发送。

2024-02-27 20:53:53 369

原创 USART(串口发送&接受单字节)

差分信号不需要太大的压差。在相同的电磁干扰的环境下,因为是双扭线,两根线受干扰的程度是一样的,所以压差相对不变。提高抗干扰能力。485是双绞线传输取的是两线的压差。一般来说受干扰后同步变化,比如都升0.5V或都降5V总体压差不变。所以抗干扰更强波特:公交车,比特率:公交车上的人。二者二进制下值相同对于N进制,比特率是波特率的(log以2为底的N)倍例如发送0x0f -> 0000 1111 低位先行,要从低位开始发送 1111 0000发送注意:TXE为1 就可以在TDR写新数据了。

2024-02-21 23:04:10 470

原创 PID算法

反馈是在输出后的与期望比较,前馈是对干扰进行检测或是预判得到的传感器是测量作用,用于测量实际输出与期望输出之间的差值,并反馈给输入,然后做出调节这里和运放的负反馈机制一样。

2024-02-20 21:10:03 825

原创 ADC模数转化器简介&AD单通道显示电压值&AD多通道

【代码】ADC模数转化器简介。

2024-02-18 11:18:43 162

原创 TIM编码器接口(编码器测速)

输入捕获那里,极性选择决定上升沿有效还是下降沿有效;但是这里我们知道上升沿下降沿都有用,这里就。实现反转负数(补码原理):int16_t 如果用uint16_t 就是65535递减。STEP3 配置时基单元:PSC不分频,ARR 65535,CNT执行计数。目前向右转增,向左减,若不是想要的增减方向,更改极性。STEP5 配置编码器接口模式:调用库函数。STEP4 输入捕获单元:滤波器、极性。*输出:控制CNT计数时钟和计数方向。*输入 :CH1/CH2 -->正转向上计数,反转都向下计数。

2024-02-17 23:07:53 436

原创 输入捕获模式测频率&PWM输入模式(PWMI)测占空比

设置上升沿触发,分频后的触发信号每来一次,CNT就会向CCR转运一次,又因为CNT是内部的标准时钟驱动的,CNT数值就可以记录两个上升沿之间的时间间隔,也就是周期,取倒数得到频率。异或门其实还是为三相无刷电机服务,三个霍尔传感器检测转子位置,根据转子位置进行换相,在前三个通道接上霍尔传感器,这个定时器就作为无刷电机的接口定时器,去驱动换相电路工作。AS:概念不清,外部中断那是CPU了啊,这里是硬件映射主模式,然后配置从模式。,这样下次上升沿再捕获,取出的CNT 才是两个上升沿的时间间隔。

2024-02-17 16:41:29 1902

原创 PWM驱动直流电机

低频时有蜂鸣器响声,加大PWM频率,超出人耳范围就可以听不到,20Hz~20kHz加大频率-->减小预分频器,从720-->36现在频率就是20kHz。

2024-02-17 13:48:44 163

原创 PWM驱动舵机

注意如果用的是360度的舵机是没办法控制角度的,只能控制旋转速度和旋转方向。舵机要求频率20ms,高电平时间0.5ms~2.5ms。频率=20ms=50Hz 1kHz=1ms。按一次角度加30 直到180 恢复到初位置。

2024-02-17 12:24:51 619

原创 AFIO重映射

但是PA15默认JTDI调试端口,要是想映射就要解除原复用,开启新映射。解除调试端口用GPIO_PinRemapConfig函数 对应参数如下。

2024-02-16 23:38:51 286 1

原创 TIM输出比较 P2 PWM控制呼吸灯

我的理解是xO1 = xIN1 & PWMx;引入PWMx可以更方便的控制特定的电路。四、函数学习/*****单独设置输出比较极性*****///带N的就是高级定时器里互补通道的配置//OC4没有互补通道//结构体初始化也可以设置极性,这里就是单独更改输出极性的,两者效果一样/*****单独修改输出使能参数*****//*****单独更改输出比较模式*****/

2024-02-16 23:20:31 702 1

原创 定时器外部时钟

每次遮挡CNT+1,超过9,Num+1。

2024-02-16 17:19:32 412 1

原创 定时器按秒计时

办法:我们要手动清除这个标志位(背后的原理是:整个TIMER初始化完成前,中断状态寄存器不能有标志位)因为预分频器有缓冲寄存器,写入的值只有在更新事件时才起作用,我们这里为了让预分频器的值立刻起作用。是:更新事件和更新中断同时发生,更新中断会更新中断标志位,当我们。若10000-1 改成1000-1 时钟速度快十倍。在TIM_TimeBaseInit函数末尾找到。

2024-02-16 16:44:00 371 1

原创 TIM(Timer)定时中断 P1

1.TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断补充:定时器本质上是一个计数器,可以工作在定时或计数模式,区别是定时模式是对时钟脉冲计数,计数模式是对外部脉冲(遮挡等)计数1S/72MHZ就是一个时钟周期,也就是基准时钟,计数72个数就是过了1S/72MHZ*72这么多的时间,也就是1Us。1Hz对应1s,1KHz对应1ms,1MHz对应1us2.16位计数器、预分频器(预对计数器的时钟进行分频,让计数更加灵活)、

2024-02-16 11:55:59 931 1

原创 旋转编码器计次

正向旋转 A、B相波形 反向旋转A、B相波形如果把一相的下降沿用作触发中断,在中断时刻读取另一相的电平,正转是高电平,反转低电平。这样就可以区分旋转方向瑕疵:正转时,A先出现下降沿,所以刚开始动,就进中断;反转时,A后出现下降沿,就是转到位了才进入中断。让人对策:AB相都触发中断,只有在时,才判断为正转;时,才判断为。这样就能保证正反转都是转到位了才进行数字加减的操作。

2024-02-15 23:04:10 512 1

原创 对射式红外传感器(输出高电平灯灭,输出低电平灯亮)

AFIO、GPIO都挂在APB2上EXTI、NVIC不需要再开启RCC时钟,因为NVIC住在“皇宫”,RCC管不着--->在很多微处理器中,外部中断线(EXTI)是通过NVIC中断控制器来实现的。因为NVIC中断控制器有专门的时钟来驱动它的工作,因此不需要额外再开启一个时钟来驱动EXTI。补:函数学习。

2024-02-15 14:46:45 895 1

原创 旋转编码器

一、概念解释遗留问题:注意按键 虽然也是外部驱动的突发事件,但是,不推荐用外部中断处理按键因为 外部中断不好处理按键抖动和松手检测的问题,输出波形也不是转瞬即逝,我们可以在主函数循环读取/定时器中断读取一、概念解释旋转编码器:用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向类型:机械触点式/霍尔传感器式/光栅式。

2024-02-14 23:44:34 267 1

原创 EXTI外部中断

EXTI(Extern Interrupt)外部中断*EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序简单来说,引脚电平变化,申请中断*支持的触发方式:上升沿/下降沿/双边沿/软件触发*支持的GPIO口:所有GPIO口,但相同的Pin号不能同时触发中断(PA1和PB1不能同时用)

2024-02-14 22:22:26 841 1

原创 OLED显示屏

OLED(Organic Light Emitting Diode):有机发光二极管OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*64I2C通信SPI通信。

2024-02-14 16:54:24 482 1

原创 光敏传感器控制蜂鸣器

遮住光线,输出指示灯灭,代表输出高电平有光线,输出指示灯亮,代表输出低电平实现:遮光蜂鸣器叫,有光不叫。

2024-02-14 15:21:38 240 1

原创 按键控制LED(硬件电路分析+代码)

按键抖动-->硬件消抖 or 软件消抖(加延时函数)第三个图 C2是滤波电容 N1是可变电阻 R1是与N1分压的定值电阻。当N1阻值变小时,下拉作用就会增强,中间的AO端的电压就会拉低;反之,下拉弱,电压被R1拉高(上下拉电阻可以用杆--弹簧模型分析) 注:强下拉 弱下拉区别在于下拉电阻阻值大小二值化输出是通过电压比较器(运算放大器,51单片机AD/DA有讲到)完成的 (见最左图) 当同相输入端的电压大于反相输入端的电压,输出瞬间升为最大值VCC;小于则降为最小值VDD。

2024-02-14 13:51:39 820 1

原创 C语言指针

指针即指针变量,用于存放其他数据单元(变量/数组/结构体/函数等)的首地址。若指针存放了某个数据单元的首地址,则这个指针指向了这个数据单元,若指针存放的值是0,则这个指针为空指针定义一个指针变量:64位系统最多有 2^64个字节 所以变量最小宽度占8字节 64个位int a;int *p,p1;//p是一个指向int类型的指针变量;p1是一个整型//数据类型的大小和指针类型大小没有关系,指针类型大小与系统位数有关。所以int a是4位,int *p是8位。

2024-02-13 18:30:04 602 1

原创 C语言知识补充

/定义一个结构体变量叫c,其中包含char 型的x int 型的y float型的z。绿色的是结构体数据类型(告诉我们 结构体数据有啥玩意构成的)// 前面是结构体类型名 后面是结构体变量名称?可以 强制类型转换: a=(FunctionalState)0。注意 对 ''结构体类型名'' "结构体变量名"区分?数组只能组合相同类型的数据,结构体可以打包不同数据类型。但是struct名字太长了,typedef起新名字。// 给结构体类型换个新名字,方便称呼。

2024-02-10 22:17:51 292 1

原创 蜂鸣器代码

/引脚翻转速度选择。

2024-02-10 18:39:00 601 1

原创 LED流水灯

LED流水灯代码及分析

2024-02-09 19:45:05 429 1

原创 LED闪烁(逐代码分析)

while(1)

2024-02-09 15:43:45 650

原创 建立一个新工程

(CMSIS 是 Cortex 微控制器软件接口标准的缩写。这是由 ARM 开发的 Cortex-M 处理器系列的供应商无关的硬件抽象层。CMSIS 为处理器的核心外设提供了一致的接口,使软件开发人员能够编写可在各种微控制器设备上运行的可移植代码,而无需为每个特定设备重新编写低级代码。这标准化了基于 ARM Cortex-M 的微控制器的软件开发,并促进了在不同平台上的代码重用。

2024-02-09 14:56:25 239

原创 LED和蜂鸣器介绍

无源蜂鸣器:内部不带振荡源,需要控制器提供震荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。第一个是低电平驱动,第二个是高电平驱动。我们倾向于第一种,因为单片机一般高电平弱驱动,低电平强驱动。有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发生,频率固定。第一个是基极低电平打开,高电平截止 PNP(最好接在上面)第二个是基极高电平导通,低电平断开 NPN(最好接在下面)LED:发光二极管,正向通电点亮,反向通电不亮。直接用IO接口可能会导致电流过大。

2024-02-08 18:22:20 877

原创 STM32 GPIO

图2.2可以发现无论电路中串联的阻值怎么变化,二极管总把电压钳制在0.7V按照中学学过的欧姆定律,我们可以知道,两个并联的100欧的电阻均分5V电压,但是将另一个100欧姆电阻和二极管并联起来呢?是0.7V还是2.5V?图2.3实验检测是0.7V左右。理解:1.二极管正向导通电阻较小,并联后的等效电阻会无限接近于小的电阻,于是,分压接近0.7V2.二极管电阻小,电流倾向于通过电阻小的地方,大电阻被“短路”,电压降近似为0.7V3.从二极管的伏安特性曲线入手:图2.4。

2024-02-08 18:06:18 2427

空空如也

空空如也

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

TA关注的人

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