- 博客(37)
- 收藏
- 关注
原创 蓝桥杯嵌入式总结
/或者是fre = 1000000/caputure;再使用这个void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);使用 HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);首先要打开中断,使用 HAL_TIM_Base_Init(&htim2);波的占空比:TIMx->CCR =xx;再在输入捕获中断回调函数中使用。
2025-04-07 16:36:42
612
原创 使用esp8266连接onenet云平台
特别地:使用at指令需要提前烧录好at固件,我是使用1471的那个固件,at固件全部都可以在乐鑫官网找到。
2025-02-01 00:54:06
1134
8
原创 硬件入门(5)电流采样电路
其实就是放大10mΩ上的电压,然后采集,再除以放大倍数,再除以10m欧,从而可以得到工作电路的电流。特别地:低端检测电路运放接入负电源,避免输入信号电压不在运放的电压范围内。需要一端接地,所以具有局限性。
2025-01-17 19:44:04
537
原创 硬件入门(4)比较器
nmos管做开关时需要把激励电源或者用电容电路连接g极和s极,以保持nmos管的持续导通。pmos做开关通常s极接电源,s极电压比g极高,mos管才能导通。
2025-01-17 11:29:09
363
原创 蓝桥杯嵌入式速通(1)
LED是使用锁存器控制,使用了PC8-PC15去控制led的亮灭,PD2控制锁存器的启用和所存,当PD2为低电平时,锁存器所存当前状态,当PD2为高电平时,锁存器可以修改状态。并且在中断回调结束语句中再使用一次,可以保证每次在接受完毕后再次开启接受中断,并且接受中断只能接受一个字节,所以需要接受到的字节存起来。由于lcd和led的引脚复用问题,所以在使用lcd函数操作的时候需要防止led的引脚被操作。需要将按键设置为上拉输入,当按键没按下时,引脚是高电平,当按键按下时,引脚为低电平。
2025-01-10 16:13:31
1536
原创 比较器的一些特别
2.比较器存在输入电压范围,不可让比较器的输入电压过高过低,大概范围在电源电压的正负0.7V内。其实就是让内部设计为开漏的比较器也能输出高电平。开漏输出的时候需要加上上拉电阻。可以加入一个正反馈,减轻噪声。
2024-12-15 12:45:13
200
原创 硬件入门(3)mos管
对于无源器件,我们可以使用nmos作为下管控制(但是如果用nmos当上管的话可能会使得nmos无法始终打开,因为此时可能vgs的电压会由于导通时s极的电压升高而导致vgs降低,从而导致无法出现足够高的导通电压,使得mos管关闭)可能会存在由于Vgs
2024-12-15 08:44:19
333
原创 硬件基础(3)二极管
由于固定存在一个导通压降,故二极管会使得充电到信号的距离0.7V的时候停止,从而导致,在信号低于当前电容电压+0.7的范围时,电容保持当前电压不变。就是通过四个二极管组成一个电桥,使得交流信号不管正负,都能让后级电路得到正的波形。稳压管在大于某个电压的时候会一直维持在一定值,但需要工作电流不要太大。稳压二极管正接可以当作普通二极管使用。(1)二极管整流功能(半波整流)
2024-12-10 15:33:31
189
原创 硬件入门(2)电感
特别地:有直流偏置的电路无法使用电感去进行高通滤波,因为直流偏置会被之间滤除,所以得使用电容的方式,因为直流偏置也是一种低频信号,0hz。(1)电感所在回路要再加一个续流回路以免在电感所在回路的阻抗出现变换的时候出现电感电压极大的情况。电流比较大的时候就可以用LR低通滤波,不能用RC滤波。
2024-12-10 14:38:16
183
原创 硬件基础(1)电容
当输入信号低于截至频率就可以通过,当输入信号高于截至频率就会衰减信号,原因是因为电容充放电速度是一个固定值,当信号频率过高,电容充放电速度无法跟上信号变换的速度,导致信号会出现衰减,从而造成高频信号不通过的现象。3.电容是缓慢上升电压的,所以可以通过控制电容的容值和串联电阻R得到电容上升到的电压,当一个tao值,电容大概充66%的电,那么电压就是3*0.66。2.电容可以断电延迟,其实就是电容并联在负载上,在电源开启的时候也给电容供电,当电源断开的时候,电容作为一个新的电源接着供电。
2024-12-10 09:58:03
382
原创 fpga入门名词(1)
在 FPGA(现场可编程门阵列)设计中,LCA(逻辑单元阵列)通常由几个关键组件构成,包括 IOB、CLB 和 Interconnect。
2024-09-05 19:13:15
2019
原创 电容的常用用法
2.滤波,高频信号下,电容的容抗非常小,所以说容易让高频信号通过电容,而低频信号下电容容抗大,从而能够滤出高频信号。如在51单片机中的晶振电路,在晶振两旁加入旁路电容,防止晶振在开始振荡一瞬间产生信号干扰。1.降压,其实就是用电容去分压,没什么好说的。3.延时,电容充放电需要时间,故能延时。4.耦合,滤除低频信号。5.旁路,滤除高频信号。
2024-07-05 11:53:31
204
原创 I2C通信
先是start,然后寻址,采用七位或十位寻址,倒数第二位(第八位)是读写位,最后一位(第九位)是应答位。输出0表示从机响应成功。之前就是数据帧的输出,然后截至位或者重新开启。I2C与串口通信不同,软件i2c的使用非常常见,所以更需要熟悉掌握他的时序,以编写我们的通信,因为软件I2C可以同时开启多个设备的交互,不用担心硬件问题只要代码容纳的下。先将scl和sda都到高电平,由于其线与的特性,当外设相应或者需要发送数据的时候就拉低电平。I2C的实现是以下几个步骤。
2024-06-29 09:59:10
226
原创 对于已知经纬度数据,使用matlab对数据聚类
读取 Excel 文件中的经纬度数据 data = readtable('coordinates.xlsx');% 显示聚类结果 disp('聚类结果:');legend('数据点', '聚类中心点', 'Location', 'Best');
2024-06-28 10:53:39
516
原创 stm32串口下载程序
如最小系统板的示例中,我们使用ch340的芯片进行串口传输,通过stlink与最小系统板进行连接,从而通过stlink去传输程序。但是当没有使用stlink等外部的烧录器时,我们也可以通过软件去进行烧录,就是使用串口下载程序。首先,单片机可以通过串口软件进行读取程序,也可以通过stlink或者其他烧录器进行读取。当BOOT0为0的时候,我们启用主闪存也就是0x0800 0000的存储地址。当BOOT0为1的时候我们就使用官方提供的发送程序的电路。
2024-03-15 16:44:00
264
原创 CAN通信
运行原理如上,由软件控制,通过CAN收发器收发与CAN的总线连接,CAN总线有两条,一条High,一条Low,是一个拓扑结构,连接很多节点,每个节点都通过CAN总线彼此通信。通过他们的电压差去实现逻辑,在范围内可以出现逻辑1,逻辑0;发送数据到缓冲区FIFO,当总线上没有信息传输,则会传输出去,当总线上同时多个节点需要发送数据,那么就要通过仲裁,判断优先级,然后再执行。
2023-12-23 15:18:01
602
原创 串口收发数据包
因为当可能与数据重复的时候,我们可以通过固定包长的方式,来找到包头包尾,从而去选择数据包。文本数据包数据清晰,并且可以人机交互,但是缺点就是效率低,对于数字不敏感。当包头包尾可能和数据重复的时候,不要使用可变包长。设置包头包尾去打包一份n字节的数据。
2023-12-20 23:36:07
420
原创 DMA基本问题
可以外设和存储器相互传输,由传输计数器计数,可以选择软件触发或者硬件触发,由M2M(存储器到存储器)选择,自动重装器可以控制传输计数器在自减为0后,是否要重新回到原本输入的数,以便下一轮的转运。其中Flash可以读不可以写,而SRAM可以读也可以写,SRAM是运行内存存储的地方。传输计数器得大于零,且有触发信号,才能进行转运(写传输计数器的时候,必须关闭DMA)不能开着,硬件触发要找一下DMA请求映像,找到对应外设是哪个通道去触发。自动重装器是当需要循环触发计数时使用。
2023-12-19 23:23:38
418
1
原创 PWM的输入捕获
与此同时,可以同时开启TI1FP2到CCR2中,当下降沿的时候开启,而不进入从模式,则这样就可以在一次周期内,将两个CCR的值相减除以二得到高电平占比,即是占空比。:在一个上升沿时候开始计数,然后下一次上升沿的时候停止,则波频率则是标准频率除以N,因为n被的标准时钟的周期等于波的周期),对于频率小的波,误差更小,因为周期越长,其计数越多,则越能忽略计数不完整的情况。,对于频率大的波,误差更小,因为频率越大,波的不完整的情况就能忽略,而。:就是在一个T内测多少个上升沿,然后有N个就除以N就是一个波周期。
2023-12-17 17:35:39
612
1
原创 PWM驱动实际代码
具体来说,TIM_Prescaler 的值决定了每个输入时钟周期内定时器计数器递增的次数。例如,如果 TIM_Prescaler 设置为 10,那么对于每个输入时钟周期,定时器计数器将递增 10 次。是用于设置定时器的重复计数器的值。TIM_Cmd(TIM2, ENABLE) 是用于启用定时器 TIM2 的命令。OC类型:output compare——>输出比较。越高的值分辨率越高,但是计数时长越长。值将其设置为0表示禁用重复计数功能。
2023-12-15 00:08:46
665
原创 C语言学习新东西
要用指针输入时得记得,这个scanf后面的是取地址,所以直接用p就好,而且不要使用++意思是读完arr后,之后缓冲区内的字符都清楚,而之后的恰好是换行符。fgets直接读取str,然后存在str指针指向的数组地址中;(定义一个数组并且在定义后能指定他的长度)其实可以用gets()代替。
2023-12-14 00:13:14
414
1
原创 TIM的输出比较
这意味着你可以在PWM信号的占空比中进行0.098%的微小调整。如果你需要将PWM信号的占空比设置为50%,你可以通过调整级别来实现更精确的设置。假设PWM信号的占空比范围为0%到100%,并且具有10位的分辨率。通过CNT和捕获/比较寄存器的比较,当大于等于这个捕获/比较寄存器时,可以进入输出模式,可以输出到主模式的控制器,或者去使能TIM。ARR+1就是一个完整PWM信号的周期(去除了相同量),而CRR是PWM持续高电平的时间(去除了相同量),所以占空比如上;
2023-12-13 22:38:31
455
1
原创 TIM定时器
其中,触发DAC是通过计数器计数溢出时的更新事件通过主模式,直接传输给TRGO,由TRGO去触发DAC。CK_CNT是TIM定时器的时钟,可以连接内部时钟作为时钟源。基本定时器两个方向功能,一个去实现中断,一个是触发DAC。
2023-12-13 00:23:26
465
1
原创 MODE模式
该模式用于将GPIO口配置为输入模式,但不启用上拉或下拉电阻。GPIO_Mode_AF_PP:复用推挽输出模式。该模式用于将GPIO口配置为复用推挽输出,输出为推挽状态,可以提供高电平和低电平。该模式用于将GPIO口配置为推挽输出,输出为推挽状态,可以提供高电平和低电平。GPIO_Mode_AF_OD:复用开漏输出模式。该模式用于将GPIO口配置为复用开漏输出,输出为开漏状态,需要外部上拉电阻。该模式用于将GPIO口配置为开漏输出,输出为开漏状态,需要外部上拉电阻。
2023-12-10 11:48:18
437
1
原创 一些杂乱的概念
防止A设备向B设备通信速度过快,可以通过一条线,如果B没准备好接受就置高电平,准备好了置低电平,防止由于B处理数据慢导致数据丢失。是指在串口通信中每秒传输的比特数,也可以理解为单位时间内发生的信号变化次数。:是Data Register的缩写,指的是数据寄存器(其实上两个都在DR中,DR分为TDR和RDR):噪声标志位,在起始位检测TR给出的电平信号中,发现噪声干扰时候,会置在状态寄存器。:CTS是由接收方设备控制的信号,用于告知发送方设备是否可以发送数据。接受可以从RX引脚接受数据,转成字节数据。
2023-12-08 23:52:43
383
原创 光敏电阻计数
中断触发方式选择,有四种,分别是上升沿、下降沿、双边沿,因为之前的GPIO口是选的上拉模式,即没信号影响的时候那个口是高电平,那有信号来的就对应的是电平从高到低,即下降沿,因此我们这里选择下降沿触发EXTI_Trigger_Falling。4.EXTI_Mode,外部中断线的模式,有中断响应和事件响应两种,这里我们要让CPU执行中断,因此选择中断响应EXTI_Mode_Interrupt。对于有些比较紧急的标志位,在置标志位后,会触发中断,在中断函数中,如果想查看标志位和清除标志位,那就用下面两个函数。
2023-12-06 00:11:05
992
1
原创 中断123
NVIC用来响应优先级管理中断的外设发现出现什么异常时会提出中断,然后跳转到中断程序我们在中断程序内去检查程序解决问题比如PVD由于电源电压不足会提出中断在中断中就可以知道电源没电,需要电源了NVIC是内核外设:其优先级分为响应优先级和抢占优先级响应优先级:可以提前排上,就是下一首播放抢占优先级:可以实现嵌套,直接中断原有程序进入新的程序AFIO选择16个通道,所有GPIO口都可以触发中断,但是同个Pin只能触发一个通道,不能同时让不同GPIO的一个同时触发中断。
2023-12-03 14:29:53
426
1
原创 c前置内容
定义新函数使工程模块话,其中.h文件中需要有如上前置,其中#define是宏定义,前后的 #ifndef与#define 相当于括号。其中.c文件里面也需要引用stm32f10x.h,可右键去引用。
2023-11-26 19:02:21
323
1
原创 RCC外设时钟树
HSI:高速内部时钟,是芯片内部自带的,但是精度较差,当HSE故障时,自动切换到HSI为系统时钟(但就没倍频,就成8M了)HCLK时钟是控制APH总线的时钟,而APH总线又控制着APB1,APB2,从而影响全部外设。其中APB1,APB2的定时器需要尽可能较高的频率,即尽可能趋向HCLK的72M的频率。PLLCLK:锁相环时钟,一般与系统时钟配置相同,用PLL倍频。而HCLK时钟来源于系统时钟,系统时钟由两个时钟通过倍频后得到。都是通过晶振实现时钟效果,大小为8M,LES受温度影响更大。
2023-11-25 19:06:31
414
原创 Stm32流水灯与蜂鸣器
与闪烁相似,如图不同的可学习的就是其用|可以同时初始化/开启多个GPIO时钟/确定多个引脚GPIO_Write函数第一个参数是GPIOX,第二个参数是直接对应ODR寄存器,使某一位直接为0低电平点亮。
2023-11-24 19:35:19
461
1
原创 用固件库点亮LED灯
模板:RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);选择到某个时钟,右键可以跳转到他的定义从而去找到如何填写括号内的值,如何达到合适的效果。一般只使用三个控制时钟的外设:分别控制APC,APB1,APB2。
2023-11-23 23:45:54
473
原创 stm32最小开发板点灯
当输出数据为0x00002000时,为输出0,即低电平,则led灯熄灭。当输出数据为0x00000000时,为输出1,即高电平,则led灯点亮。
2023-11-20 23:33:33
193
1
原创 keil5新建工程
在将这些前置文件放入start后,需要把start在keil中头文件输入进去,否则.h文件无法被找到。新建工程前置内容:下载官方固件包,下载软件并激活。新建start去存放这些前置的文件。其他的建立项目时候芯片选好就行。并且debug要配好。
2023-11-20 23:15:52
56
1
原创 GPIO功能框图简单理解
上拉电阻:作用是拉高引脚上的电压,本质应该是接入上拉电阻后,上拉电阻与芯片内部内阻并联使得上拉电阻与内阻总阻值变小,从而使得与整体串联的外部分压变高。开漏输出:P-MOS恒为关闭,外接电压让外部与VSS有电压差从而电流流通(目的是为了解决3.3V电压与所需电压不匹配的问题)普通的输出是只有一种控制输出时,复用的输出是又有片上外设控制输出时,具体怎么操作和使用,片上外设如何去控制输出暂时也不清楚。下拉电阻:是拉低引脚上的电压,相当于串联了一个电阻,使得输出端分压变小,使得引脚上电压变低。
2023-11-20 13:32:44
63
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人