当前位置: 首页 > wzjs >正文

地方性小网站的建设wordpress熊掌号插件

地方性小网站的建设,wordpress熊掌号插件,英文网站建设方案详细方案,简述营销型网站推广的方法下面为你提供使用 STM32 标准库实现定时器初始化、输出 PWM 以及添加定时器中断功能的详细代码及解释。此示例以 STM32F103 系列芯片为例,使用定时器 3 输出 PWM 信号并添加定时器更新中断。 代码示例 #include "stm32f10x.h"// 函数声明 void RCC_Conf…

下面为你提供使用 STM32 标准库实现定时器初始化、输出 PWM 以及添加定时器中断功能的详细代码及解释。此示例以 STM32F103 系列芯片为例,使用定时器 3 输出 PWM 信号并添加定时器更新中断。

代码示例

#include "stm32f10x.h"// 函数声明
void RCC_Configuration(void);
void GPIO_Configuration(void);
void TIM3_Configuration(void);
void NVIC_Configuration(void);// 中断服务函数声明
void TIM3_IRQHandler(void);int main(void)
{// 配置系统时钟、GPIO、定时器和NVICRCC_Configuration();GPIO_Configuration();TIM3_Configuration();NVIC_Configuration();// 使能定时器3TIM_Cmd(TIM3, ENABLE);// 使能定时器3的PWM输出通道1TIM_CtrlPWMOutputs(TIM3, ENABLE);while (1){// 主循环可处理其他任务}
}// 配置系统时钟
void RCC_Configuration(void)
{// 使能GPIOA和TIM3的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
}// 配置GPIO
void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;// 配置PA6为复用推挽输出,用于TIM3_CH1的PWM输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);
}// 配置定时器3
void TIM3_Configuration(void)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;// 定时器基本参数配置TIM_TimeBaseStructure.TIM_Period = 999; // 自动重载值,PWM周期为1msTIM_TimeBaseStructure.TIM_Prescaler = 71; // 预分频器,将系统时钟72MHz分频为1MHzTIM_TimeBaseStructure.TIM_ClockDivision = 0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);// PWM模式配置TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = 500; // 初始占空比为50%TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OC1Init(TIM3, &TIM_OCInitStructure);// 使能定时器3的更新中断TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
}// 配置NVIC
void NVIC_Configuration(void)
{NVIC_InitTypeDef NVIC_InitStructure;// 配置TIM3中断NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);
}// 定时器3中断服务函数
void TIM3_IRQHandler(void)
{if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET){// 清除中断标志位TIM_ClearITPendingBit(TIM3, TIM_IT_Update);// 在这里编写定时器中断触发时要执行的代码// 例如动态改变PWM占空比static uint16_t pulse = 0;pulse += 10;if (pulse > 1000){pulse = 0;}TIM_SetCompare1(TIM3, pulse);}
}

代码详解

1. RCC_Configuration函数

此函数的作用是使能相关外设的时钟。具体而言,使能了 GPIOA 和 AFIO(复用功能)的 APB2 总线时钟,以及定时器 3 的 APB1 总线时钟。因为使用 GPIOA 的引脚输出 PWM 信号,且定时器 3 作为 PWM 信号的发生源,所以需要先开启它们的时钟。

2. GPIO_Configuration函数

该函数用于配置 GPIO 引脚。将 PA6 引脚配置为复用推挽输出模式,速度为 50MHz。这是因为 PA6 要作为定时器 3 的通道 1(TIM3_CH1)的 PWM 输出引脚,复用推挽输出模式能让引脚输出定时器产生的 PWM 信号。

3. TIM3_Configuration函数
  • 定时器基本参数配置
    • TIM_Period:设置自动重载值为 999,结合预分频器,使得 PWM 信号的周期为 1ms。
    • TIM_Prescaler:预分频器的值设为 71,将系统时钟 72MHz 分频为 1MHz。
    • TIM_ClockDivision:时钟分频系数设为 0。
    • TIM_CounterMode:计数器模式设置为向上计数模式。
  • PWM 模式配置
    • TIM_OCMode:选择 PWM 模式 1。
    • TIM_OutputState:使能 PWM 输出。
    • TIM_Pulse:初始占空比设为 50%。
    • TIM_OCPolarity:输出极性为高电平有效。
  • 使能定时器更新中断:调用TIM_ITConfig函数使能定时器 3 的更新中断,当定时器计数器溢出时会触发中断。
4. NVIC_Configuration函数

该函数用于配置嵌套向量中断控制器(NVIC)。设置定时器 3 的中断优先级,包括抢占优先级和子优先级,并使能该中断通道。

5. TIM3_IRQHandler函数

这是定时器 3 的中断服务函数。当定时器 3 发生更新中断时,会自动调用此函数。首先通过TIM_GetITStatus函数检查是否是更新中断触发,若是则清除中断标志位TIM_ClearITPendingBit,避免重复触发。在中断服务函数中,我们实现了动态改变 PWM 占空比的功能,每触发一次中断,占空比增加 10,当占空比达到 1000 时重新归零。

6. main函数

在主函数中,依次调用上述配置函数完成系统时钟、GPIO、定时器和 NVIC 的初始化。然后使能定时器 3 和其 PWM 输出通道 1,最后进入一个无限循环,主循环可用于处理其他任务。

通过以上代码和解释,你可以使用 STM32 标准库实现定时器初始化、输出 PWM 信号并添加定时器中断功能。

http://www.dtcms.com/wzjs/614021.html

相关文章:

  • 国内net开发的网站建设蔡甸建设局网站
  • 如果制作个人网站门户网站重要性
  • 全网影视vip网站建设购物网站cms
  • 南京网站优化步骤wordpress 修改主题页面
  • Html5手机静态网站设计企业网站模块建设流程
  • 网站备案在线注销网站空间要多少钱
  • apache 静态网站长沙官网seo技术厂家
  • 电子商务网站建设的论文淘客推广是什么
  • 用什么做网站的访问量统计设计网店首页
  • 网站建设的教材html官方网站
  • 余姚网站建设找哪家中国建筑工程网校
  • 安徽城乡住房建设厅网站模版 网站需要多少钱
  • 如何备份织梦系统做的网站北京路口优化
  • 邵阳网站设计个人网站推广
  • 南宁网站建设牛易飞网站备案 上一级服务商名称
  • 湖南建设工程招标网seo网站改版
  • 网站收录需要多久网站建设 软件有哪些
  • 做二手车网站需要什么单页面网站制作
  • 效果图网站密码破解定制网站开发介绍图
  • 做外贸服饰哪个个网站好网站建设费入
  • 河南网站制作团队wordpress 支持 插件
  • 广州建设六马路小学网站wordpress改登录路径
  • 企业网站建设的作用网站首页设计效果图
  • 找人做建筑施工的网站朔州路桥建设有限责任公司网站
  • 亚马逊网站建设购物商城平台有哪些
  • 网站备案号密码找回手表网站登录页背景图
  • 网站开发安全需求自己的网站怎么做模板
  • 东莞 网站 建设智慧记免费官方下载
  • 怎么黑进网站后台新浪微博关联wordpress
  • 河北建设网站怎样推广产品