0
点赞
收藏
分享

微信扫一扫

GPIO端口状态实现最大速度翻转


GPIO端口状态实现最大速度翻转

一、占空比什么意思

占空比是指电路被接通的时间占整个电路工作周期的百分比。比如说,一个电路在它一个工作周期中有一半时间被接通了,那么它的占空比就是50%。如果加在该工作元件上的信号电压为5V,则实际的工作电压平均值或电压有效值就是2.5V。假设该元件为一个电子阀门,当电路全部接通时,阀门全开;当占空比为50%时,阀门状态为半开。同理,当占空比设置为20%时,阀门的开度显然应该为20%。这样,这个阀门就可以在0%(全闭)到100%(全开)的范围内任意调节。


GPIO端口状态实现最大速度翻转_单片机

二、占空比计算公式

占空比是指高电平在一个周期之内所占的时间比率,方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5个周期。若信号的周期为T,每周期高电平时间为t1,低电平时间为t2,T=t1+t2,则占空比D=t1/T。占空比(Duty Cycle)在电信领域中有如下含义:在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。


GPIO端口状态实现最大速度翻转_stm32_02

1.管脚配置:

GPIO端口状态实现最大速度翻转_嵌入式硬件_03

2.时钟配置

GPIO端口状态实现最大速度翻转_单片机_04

3.核心代码

while (1)
  {
	  //	方式一: 使用HAL库进行翻转
	  HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
	  //    方式二: 直接使用C语言操作寄存器
	  GPIOC->BSRR = (((GPIOC->ODR) & GPIO_PIN_13) << 16u) | (~(GPIOC->ODR) & GPIO_PIN_13);
    /* USER CODE END WHILE */
  }


方式三: 使用B指令
    	  __asm__(//这里是双下划綫
		  "speed_test PROC"
			"EXPORT  speed_test"
			"LDR     R0,=0x40010800"
			"LDR     R1,=0x8000"
		  "toggle"
			"STR     R1,[R0,#0x10]"
			"STR     R1,[R0,#0x14]"
			"B		toggle"
			"BX      LR"
			"ENDP"
	  );

参考链接:


2.实现STM32 GPIO端口状态实现最大速度翻转

3.STM32Cube工程转为Keil工程的方法介绍


举报

相关推荐

0 条评论