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