- 博客(6)
- 收藏
- 关注
原创 STM32外设————USART
今天简单记录一下串口,其中原理不多赘述直接开始配置。2、GPIO和USART1的结构体配置。1、开启GPIO和USART1的时钟。3、NVIC 中断配置。4、串口接收中断开启。5、NVIC中断分组。6、USART1开启。
2025-04-04 22:08:49
224
原创 STM32外设(四)基本定时器
若设置预分频器为5,则会在时钟脉冲输入下计数0、1、2、3、4然后输出一个脉冲给定时器的计数器,相当于对时钟进行6分频。注:关于计数器的预分频器其实有一个影子寄存器的结构,真正工作在分频一线的是这个影子寄存器。通过设置预分频器的值给到预分频器后,预分配寄存器会等到计数器计数到和自动重装载寄存器一样的值后,从新开始计数才会把新预分频器的值赋给影子寄存器。通用定时器:TIM2、TIM3、TIM4、TIM5(在基本定时器的基础上加了时钟源选择、输入捕获、输出比较、编码器接口、主从模式触发等功能)
2025-04-03 21:47:44
590
原创 STM32时钟树
分频后的信号成为PCLK1为除了定时器以外的外设提供时钟,定时器前会比其他外设前多一个倍频器(顾名思义将频率加倍),有X1、X2两个值,但是无法人为设置,会根据HCLK到PCLK1的分频值自动匹配倍频系数(若为1分频则倍频系数为1,若为2、4、8、16分频则倍频系数为2)让定时器有尽可能高的频率。PLL的时钟输入也是来自于HSE和HSI,来自HSI的时钟会经过一个2分频的预分频器,来自HSE的时钟会经过一个可选择的预分频器(1、2分频)。在数电的学习过程中我们知道,如果仅靠门与门的连接完成运算。
2025-04-03 19:27:25
917
原创 STM32外设学习(二)外部中断
还有一种情况是在程序正在执行中断函数时,又有一个中断请求出现,这时候CPU会根据中断的优先级进行判断。若优先级高于正在执行的中断,则会产生新中断,执行优先级高的中断,结束后继续执行原来的中断函数。stm32的具有众多外设,GPIO、中断、DMA、ADC\DAC、定时器、看门狗、FSMC、SDIO、USB、bxCAN、SPI、I2C、USART等。外部中断:其中每组GPIO引脚的相同pin脚对应的中断线相同(即GPIOA_Pin0与GPIOB_Pin0、GPIOC_Pin0、GPIOD_Pin0对应。
2025-03-31 16:47:29
698
原创 STM32外设学习(一)GPIO
GPIO还有一个十分重要的概念,也就是响应速度,相应速度是指,当你的电平需要改变的时候,这个改变的时间需要多少。在没有信号输入的时候,根据电路知识,此时的电平就是VDD的电平,此时读取到的电平就是高电平。如果输入了一个高电平,VDD和O点(最上面的图中的O点)之间就几乎没有电势差,此时O点的电平就仍然是高电平,读取到的电平就是高电平。当输入信号是一个低电平的时候,此时O点的电平的电平就会变成低电平,那么VDD和O点之间形成了电势差,但是因为上拉电阻的存在,所以不会出现一个大电流。,可以更好的适应更多情况。
2025-03-30 16:26:35
840
原创 Ubantu下 verilator 入门使用
现在编译我们的测试文件并进行仿真,此时需要运行 Verilator 并重新生成包含测试用例的 .mk 文件。首先建立一个verilator的工作目录,将需要进行编译的.sv文件放入建好的工作目录,运行下面命令。但Verilator本身就是只进行转换和编译工作,仿真工作由C++可执行文件完成的,所以我们需要用。其中Valu.cpp,Valu.h 是alu转换后对应的C++实现源文件以及头文件。会在alu.sv的工作目录内生成obj_dir的文件夹,内部为转化后的C++文件。通过make编译.mk文件。
2025-03-03 16:05:29
426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅