自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DMA数据转运&基于DMA的ADC多通道数据转运

在STM32微控制器中,ADC1->DR(数据寄存器)的位宽取决于具体的ADC模块配置和STM32系列型号。大多数STM32的常规ADC(如STM32F1/F4等系列):DR寄存器是16位的,但实际有效数据位数为12位(对应ADC的12位分辨率)。数据存储时右对齐(默认)或左对齐,未使用的高位补零。ADC.h中有一个函数为这个函数用来Enables or disables the specified ADC DMA request.用来开启DMA触发信号。

2025-05-29 10:58:09 752

原创 522UART是什么

理解其帧格式、波特率配置及电平标准(TTL/RS-232)是硬件开发的关键。它采用异步通信方式,无需时钟信号同步,仅需两根数据线(TX发送、RX接收)即可实现全双工通信。WiFi/蓝牙模块(如ESP8266、HC-05)通过UART与主控通信。PLC、HMI设备通过UART(或RS-232/RS-485变种)交互。将并行数据(如CPU的8位数据)转换为串行比特流,按帧格式发送。:通常一对一通信(如需多设备通信,需额外协议如RS-485)。:仅需TX、RX、GND三根线(无需复杂的控制信号)。

2025-05-22 21:25:07 368

原创 PWMI输入模式测频率和占空比

输入捕获模块需要两个通道:TIM_PWMIConfig函数的运用。这个函数会将上升沿——下降沿,占空比=CCR2/CCR1。添加一个测量占空比的函数。

2025-04-25 14:19:56 175

原创 输入捕获模式测频率

上面tim3的psc配置为72,所以标准频率fc为72000000/72=1Mhz。TIM_ICPSC_DIV1:1分频——每次触发(上升沿/下降沿)都有效。TIM_ICPSC_DIV2:2分频——每2次触发(上升沿/下降沿)有效。本来只有下列函数,改变占空比 但是我们需要测试频率,需要动态改变频率。PA6、PA0通过跳线相连,PA6测试PA0的输出频率。第一步:开始TIM3和GPIO的时钟。用TIM3_CH1捕获输入频率。第四步:输入捕获模块初始化。获取输入捕获的频率的函数。第三步:时基单元初始化。

2025-04-24 20:22:05 346

原创 TIM输入捕获知识部分

对射式红外传感器,接在PB14上作为外部中断,然后再用一个定时器tim2产生一个1s的中断,在中断里,每间隔1s取一下计数值,同时清零,为下一次计数做准备。这样每次读取的计次值,就是对射式红外传感器的频率。我们用一个标准频率来驱动定时器计次,从一个上升沿开始计,计数器从0开始,一直计到下一个上升沿,停止。就是从频率的定义出发的,可以选取1s的闸门时间,然后看这1s内出现了几个上升沿/下降沿。我们如果能测出周期的时间,再取一个倒数就是频率。当待测频率小于中界频率时,测周法误差更小,反之,测频法误差更小。

2025-04-24 19:52:11 309

原创 PWM驱动直流电机

这个直流电机运行的时候会很响,但是只要频率足够大 人耳就听不到了。最右边的图就是一个H桥电路,是由两个推挽电路组成的。人耳听到声音的频率范围是20Hz到20KHz。

2025-04-23 19:37:02 139

原创 pwm驱动呼吸灯

下面为PWM的初始化函数和改变RCC的封装函数。上述代码为呼吸灯实现,呼吸灯的实现,是通过。

2025-04-21 17:23:00 162

原创 在STM32的定时器外设中,选择使用哪个外部时钟配置函数

注意:具体选择还要参考硬件设计(哪个引脚连接了外部时钟源)和应用需求(是否需要特定的时钟模式)。:使用内部触发输入(ITRx),即来自其他定时器的时钟信号。确定外部时钟来源(其他定时器/TI引脚/ETR引脚)系列函数:使用外部触发输入(ETR引脚)作为时钟源。:使用外部输入引脚(TI1或TI2)作为时钟源。如果只需要配置ETR引脚而不设置时钟模式,使用。:ETR引脚用于时钟模式1(复位模式):ETR引脚用于时钟模式2(门控模式):仅配置ETR引脚,不设置时钟模式。模式1:外部时钟直接驱动计数器。

2025-04-19 20:32:09 516

原创 TIM_ITConfig() 和 TIM_Cmd()

位(Update Interrupt Enable)。:在初始化时调用,告诉定时器“允许更新事件触发中断”。:避免定时器启动后立即触发中断,但中断尚未配置完成。(嵌套向量中断控制器)发送中断请求。在STM32的定时器中断配置中,是两个关键函数,它们分别控制。(更新标志位),则定时器会向。开始根据时钟频率递增/递减。时,定时器才开始计数,并在。例如:你可能需要定时器运行(不会变化,永远不会触发。该函数操作的是定时器的。该函数操作的是定时器的。定时器中断的触发需要。),用于PWM生成。

2025-04-19 19:57:27 393

原创 【无标题】

当前标志位”指的是 TIMx_SR.UIF。

2025-04-19 19:42:51 409

原创 stm32| 中断标志位和中断挂起位 | TIM_ClearFlag 函数和TIM_ClearITPendingBit 函数

功能相同:两者最终均清除。

2025-04-19 17:32:01 880

原创 %2d,%-2d,%.2d,%02d;%2x, %02x, %-2x, %.2x;%mf,%m.nlf,%.nf

如图所示,2表示输出宽度。。当%2d%-2d%.2d%02d。

2025-03-19 17:01:55 222

原创 单片机第15届选择题

做错了。

2025-03-17 20:02:23 141

原创 TIM | 为什么要TIM->cnt=0,手动清零计数器

在输入捕获模式下,CNT。计数器是的,无论是否发生捕获事件,计数器都会根据定时器的时钟频率不断累加,直到溢出或手动清零。

2025-03-16 16:20:16 508

原创 if(htim->Channel==HAL_TIM_ACTIVE_CHANNEL_1)在判断了是哪个时钟后,又判断了是哪个通道,在判断了是通道1之后,为什么这个里面还有获取通道2的代码

源代码在输入捕获模式下,代码中出现了的判断,但在判断为通道 1 后,仍然读取了通道 2 的捕获值(),。实际上,这种设计是为了实现(即同时捕获上升沿和下降沿),从而计算 PWM 信号的和。

2025-03-16 15:41:49 337

原创 我们在知道占空比为10%的时候,但是我们还要获取占空比,然后我们定义变量PA16_duty=10;ARR+1=100,为什么我们还要即时把PA16_duty传送给Tim16->CRR1

在实际应用中,PWM 的占空比可能需要动态调整。定时器的 PWM 信号是由硬件生成的,硬件需要明确的数值(的值需要设置为 10,才能实现 10% 的占空比。,代码的可读性会降低,且后续修改占空比时会变得复杂。:设置 PWM 的周期(即计数器的最大值)。:设置 PWM 的占空比(即高电平的时间)。是一种清晰的编程方式,便于理解代码的逻辑。,表示 PWM 的周期为 100。,硬件就无法知道占空比应该是多少。PWM 信号的占空比是通过比较。,表示占空比为 10%。,以更新 PWM 信号。

2025-03-16 11:07:32 211

原创 IIC通信 24C02存储器 EEPROM

IIC总线有两根总线:SCL(时钟线),SDA(数据线)只有一根数据线,所以是半双工 而且它是一个在我们这个板上,主机就是stm32芯片 从机24c02这个存储器就是其中一个从机。

2025-03-15 16:07:53 618

原创 stm32与24C02存储器通过I2C通信。I2C是stm32里面的嘛?读的函数,有三个参数,一个是存储区,一个是地址,还有一个是读取次数,是stm32读24C02,还是24C02读

I2C 是 STM32 内部的硬件模块,用于与其他 I2C 设备通信。读操作:STM32 从 24C02 读取数据。写操作:STM32 向 24C02 写入数据。STM32 是主设备,24C02 是从设备,通信由 STM32 发起和控制。

2025-03-14 20:14:46 973

原创 TIM定时器的输出频率和占空比、TIM定时器输入捕获频率和输入捕获占空比

强制类型转化一下。

2025-03-14 16:30:40 1031

原创 ADC模数转换

一个用来获取R37,一个用来获取38。

2025-03-11 10:51:31 225

原创 led模块

上图实现了点亮led1~led4。不用HAL_Delay。

2025-03-10 20:11:31 148

原创 UART串口通信

同步通信速度快容量大但硬件复杂,异步通信灵活但传输效率较低。

2025-03-10 19:57:21 618

原创 LCD模块 | LCD屏基本配置,LCD函数,LCD界面切换,LCD高亮显示屏幕

例如,如果没有配置 GPIO 引脚的功能,LCD 屏幕无法接收数据;如果字符串长度超过了LCD的显示宽度,可能会导致显示异常或数据溢出。如果没有初始化,LCD 屏幕可能无法显示任何内容,或者显示异常(如花屏、闪烁等)。如果 LCD 控制器和驱动芯片没有初始化,硬件处于未知状态,无法响应任何操作。LCD 驱动芯片需要接收特定的初始化命令序列,才能正确解析显存中的数据并显示。注意:每次换页的清屏操作写在哪里,不能写在下面图片的空格处,所以用%03d,然后前面加空格,后面加空格 让它居中。

2025-03-06 16:28:20 549

原创 嵌入式中哪些外设用WritePin哪些用ReadPin

使用 时,GPIO 引脚必须配置为 输入模式(如 )。使用 时,GPIO 引脚必须配置为 输出模式(如 )。在输入模式下,通常需要启用上拉或下拉电阻,以确保引脚在未连接外部设备时有确定的电平状态。在输出模式下,通常不需要上拉/下拉电阻。确保外部设备的电平与 MCU 的电平兼容(如 3.3V 或 5V) 用于从 GPIO 引脚读取数据,适用于检测外部信号(如按键、传感器)。 用于向 GPIO 引脚写入数据,适用于控制外部设备(如 LED、继电器)。两者在功能、实现和应用场景上有明显区别,但在实际开发中通

2025-03-06 14:14:54 349

原创 key按键 | 按键控制灯亮灭,按键的长按短按,按键的双击单击

///用于判断是否可以开始计时,0表示可以,1表示不可以。如果是每个按键,只要双击就是亮led2,单击亮led1。//用于定义刚才按键是什么。上面这个是按键1按下的长按短按判断。不能写在如果是双击,第二个灯亮后面。

2025-03-05 15:01:20 299

原创 蓝桥杯嵌入式② | 程序框架:系统初始化和任务调度器

什么时候该做什么,就是一个智能的时间提醒工具,一个时间管家。

2025-03-01 20:45:41 412

原创 蓝桥杯嵌入式① | 工程框架搭建

该模块允许用户配置时钟树,包括主时钟源、PLL、分频器等,以及配置低功耗模式和电源管理。SYS模块还提供了一些可选的驱动程序,如时钟控制器、电源控制器等,方便用户进行系统级别的配置和管理。通过配置SYS模块,用户可以优化系统的性能和功耗,提高系统的可靠性和稳定性。是 ARM 提供的一种两线调试接口,它是 JTAG 接口的替代品,主要用于 Cortex-M 系列芯片的调试工作。是一个非常重要的工具,是一个图形化的配置工具,用于快速生成 STM32 微控制器的初始化代码。第二个框:添加我们的工程路径。

2025-02-28 20:24:47 424

原创 蓝桥杯嵌入式比赛里要电路板子嘛?嵌入式蓝桥杯比赛需要什么?

蓝桥杯嵌入式比赛需要参赛者使用指定的硬件平台(如CT117E-M4开发板)和软件工具(如Keil MDK和STM32CubeMX)。比赛内容主要围绕STM32的外设配置和功能实现展开,参赛者需提前熟悉硬件资源和开发工具,以高效完成比赛任务。

2025-02-28 19:37:48 779

原创 寄存器一定在cpu内部嘛?那为什么在stm32中的的ADC等外设不在cpu内部

CPU寄存器位于CPU核心内部,用于存储临时数据和状态信息,速度极快。外设寄存器位于外设模块内部,用于配置和控制外设的行为,通过内存映射I/O访问。外设寄存器不在CPU内部是为了实现模块化设计、功能分离和降低成本。在STM32中,外设寄存器通过固定的内存地址访问,具体地址由芯片厂商定义。

2025-02-28 15:43:30 708

原创 寄存器是特殊的存储器

寄存器是特殊的存储器,因为它们:速度极快,直接参与CPU运算。容量小,数量有限。用途特殊,用于存储关键数据和状态信息。位于CPU内部,访问方式与普通存储器不同。寄存器是计算机体系结构中不可或缺的一部分,它们的特殊性和高效性使得CPU能够快速执行指令和处理数据。

2025-02-28 15:42:00 423

原创 DMA的结构框图

cortex-M3内核。

2025-02-28 15:38:46 155

原创 cpu的位数决定了寻址位数

寻址位数为64位,理论上最大寻址空间为2^64字节,实际受操作系统和硬件限制。总结:CPU位数直接影响其寻址能力,位数越高,可访问的内存空间越大。:寻址位数为32位,最大寻址空间为2^32字节,即4GB。:指CPU一次能处理的数据位数,如32位或64位。:操作系统和硬件可能进一步限制实际可用的内存空间。:决定了CPU能访问的内存地址空间大小。:决定CPU一次能传输的地址位数。:影响地址存储和处理能力。

2025-02-28 14:23:41 313

原创 stm32中为什么定时器TIM称为外设

外设是指集成在微控制器芯片(MCU)内部的功能模块,用于扩展微控制器的功能。【注:,

2025-02-26 20:53:20 410

原创 程序存储器和Flash的区别

程序存储器是用于存储程序代码(如固件、操作系统、应用程序)的存储器。

2025-02-26 20:19:35 392

空空如也

空空如也

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

TA关注的人

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