自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 OLED的使用

第二个是全速运行,第三个是停止全速运行,第四个是跳到指定行。注意:要在前头先Init这个OLED。

2023-11-30 22:50:27 365 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

原创 stm32f103c8t6的原理图

2023-11-20 23:19:32 1543

原创 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

原创 关于GPIO引脚和寄存器

(19 封私信 / 37 条消息) Stm32一组引脚和寄存器的联系是什么? - 知乎 (zhihu.com)

2023-11-18 09:37:42 29

空空如也

空空如也

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

TA关注的人

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