0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32编程疑难杂症

edager 来源:edager 作者:edager 2024-03-28 23:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近遇到一个奇怪的问题:

如果用一个程序单独用定时器内中断每隔1s点亮LED,此时LED亮度是正常的,单独的呼吸灯程序LED亮度也正常

后来另外写了一个程序将上面定时器内部中断每隔1s点亮LED的功能跟PWM呼吸灯的程序合并在一起后呼吸灯亮度就变的很暗了,但是呼吸灯是能够正常呼吸的

以上是什么原因导致的?

wKgZomYFjISAZjHtAABaUIIZD3M043.pngwKgZomYFjIWAWLhnAATGfZy2P1c906.png

程序如下:

#include "stm32f10x.h" // Device header
#include "Led.h"
#include "Timer.h"
#include "PWM.h"
#include "Delay.h"
#include "SysTick.h"

uint16_t i;

int main(void)
{
// SysTick_Init(72);
Timer_Init();
LED_Init();
PWM_Init(100,720); //1000Hz
while(1)
{
for(i=0; i<=100; i++)
{
PWM_SetCompare1(i);
PWM_SetCompare2(i);
Delay_ms(10);
}

for(i=0; i<=100; i++)
{
PWM_SetCompare1(100-i);
PWM_SetCompare2(100-i);
Delay_ms(10);
}
}
}

#include "stm32f10x.h" // Device header


void PWM_Init(uint16_t Per, uint16_t Psc)
{
//ÍâÉè²ÎÊý½á¹¹Ìå
GPIO_InitTypeDef GPIO_InitStruct;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_OCInitTypeDef TIM_OCInitStruct;

//ÍâÉèʱÖÓ¿ªÆô
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

//ÖØÓ³ÉäÒý½ÅPA6µ½PC6
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);

//GPIO½á¹¹Ìå²ÎÊýÉèÖÃ
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStruct);

//Ñ¡Ôñʱ»ùµ¥ÔªµÄʱÖÓÔ´
TIM_InternalClockConfig(TIM3);

//¶¨Ê±Æ÷ʱ»ù½á¹¹Ìå²ÎÊýÉèÖÃ
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period = Per-1; //ARR Ô¤ÖØ×°ÔØÖµ
TIM_TimeBaseInitStruct.TIM_Prescaler = Psc-1; //PSC Ô¤·ÖƵϵÊý
TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;
TIM_TimeBaseStructInit(&TIM_TimeBaseInitStruct);

//Êä³ö±È½Ï½á¹¹Ìå²ÎÊýÉèÖÃ
TIM_OCStructInit(&TIM_OCInitStruct);
TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStruct.TIM_Pulse = 0; //CCR ¼ÆÊýÆ÷
TIM_OC1Init(TIM3, &TIM_OCInitStruct);
TIM_OC2Init(TIM3, &TIM_OCInitStruct);

// TIM_ARRPreloadConfig(TIM3, ENABLE);
// TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

//ʹÄܶ¨Ê±Æ÷
TIM_Cmd(TIM3, ENABLE);

}


//ÉèÖÃCCR,¸Ä±äPWMÕ¼¿Õ±È
void PWM_SetCompare1(uint16_t Compare)
{
TIM_SetCompare1(TIM3, Compare);
}


void PWM_SetCompare2(uint16_t Compare)
{
TIM_SetCompare2(TIM3, Compare);
}

//ÉèÖÃÔ¤·ÖƵֵ,¸Ä±äPWMƵÂÊ
void PWM_Prescaler(uint16_t Prescaler)
{
TIM_PrescalerConfig(TIM3, Prescaler, TIM_PSCReloadMode_Immediate);
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    244

    文章

    24779

    浏览量

    693401
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5904

    浏览量

    227100
  • STM32
    +关注

    关注

    2313

    文章

    11206

    浏览量

    375239
  • 编程
    +关注

    关注

    90

    文章

    3725

    浏览量

    97527
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解决工业现场“疑难杂症”,耐达讯自动化有PROFIBUS转光纤这套独家秘籍

    引言:工业通信的痛点与破局 在工业自动化行业,随着生产规模的扩大和工艺精度的提升,设备间的通信稳定性已成为制约产能释放的关键因素。传统的PROFIBUS-DP总线虽然应用广泛,但在面对长距离传输和复杂电磁环境时,往往显得力不从心。信号衰减、数据丢包、地环路干扰等问题频发,不仅增加了维护成本,更可能引发非计划停机。为了打破这一僵局,耐达讯自动化凭借其深耕工业通信领域。推出了高性能的PROFIBUS转光纤解决方案,正在成为连接工
    的头像 发表于 05-13 14:46 608次阅读
    解决工业现场“<b class='flag-5'>疑难杂症</b>”,耐达讯自动化有PROFIBUS转光纤这套独家秘籍

    做了十年电源设计,LP6655 把我从PFC的五个深坑里捞了出来

    硬件限带+瞬态注入、七项保护全开阈值±3%、VM一脚切换峰值/平均电流。专治200W以上电源的PFC疑难杂症,少熬几个Debug夜。
    的头像 发表于 05-09 17:09 1720次阅读

    安川变频器故障如何排除变频器软故障分析

    安川变频器的“软故障”通常是指那些时好时坏、没有明显硬件烧毁痕迹,或者一复位就暂时正常的“疑难杂症”。这类故障往往比硬件损坏更棘手,因为它们的原因比较隐蔽。 结合一线维修经验和官方技术文档,软故障
    的头像 发表于 04-20 07:13 148次阅读
    安川变频器故障如何排除变频器软故障分析

    怎么理解TCP三次握手和四次挥手

    作为运维工程师,无论是排查网络故障、分析日志,还是配置负载均衡器,都需要对 TCP 协议有深入理解。很多"疑难杂症"的根源,往往在于对 TCP 状态转换和连接管理理解不够透彻。
    的头像 发表于 04-10 16:42 901次阅读

    浮思特 | 告别盲目拆修,红外热成像如何精准定位房屋漏水点?

    在房屋维护与修缮领域,漏水问题堪称“头号疑难杂症”。尤其是厨房和卫生间,这些区域用水频繁,管道错综复杂,一旦发生渗漏,不仅影响自家生活,还可能殃及邻里,引发纠纷。传统的漏水检测方法往往令人头疼。很多
    的头像 发表于 03-26 10:20 268次阅读
    浮思特 | 告别盲目拆修,红外热成像如何精准定位房屋漏水点?

    福禄克18B+数字万用表的应用案例

    在电气检测与电子维修的江湖里,福禄克(Fluke)一直是个绕不开的名字。从现场维修的嘈杂厂房到实验室研发的静谧台桌,技术人员对万用表的要求其实很纯粹:皮实耐用、读数精准、关键时刻能搞定“疑难杂症”。
    的头像 发表于 03-19 09:13 880次阅读

    Fluke 773毫安钳形表让暖通自控调试效率翻倍

    它不只是个钳表,更是为你量身定制的集成式诊断平台,专治各种暖通空调与楼宇自控系统“疑难杂症”。
    的头像 发表于 02-28 09:38 760次阅读

    什么是晶振的散电容?

    什么是晶振的散电容?晶振的散电容,也叫做寄生电容,是指电路中非人为设计、由物理结构自然产生的、有害的隐藏电容。它为什么重要?(影响)散电容之所以关键,是因为它会直接影响晶振的振荡频率精度。核心
    的头像 发表于 11-13 18:13 703次阅读
    什么是晶振的<b class='flag-5'>杂</b>散电容?

    干货分享 | 功能安全常见疑难问题汇总

    安全干货SafetyQ&A“功能安全常见疑难问题解答”在智能驾驶及新能源汽车的飞速发展之下,功能安全已成为绕不开的关键领域。然而在实际应用中,一直面临着诸多问题和挑战。前不久,磐时举办了一场
    的头像 发表于 09-05 16:21 2566次阅读
    干货分享 | 功能安全常见<b class='flag-5'>疑难</b>问题汇总

    STM32F103c8上做DLQR最优控制算法的C编程资料

    这是我近期做的一个项目--基于STM32F103c8的DLQR控制算法的C编程,涉及DLQR最优控制算法、嵌入式STM32F103编程、CMSIS-DSP库使用。    附有完整的程序
    发表于 07-23 15:30 0次下载

    工业园区用电管理混乱、损耗高?安科瑞 Acrel3000电能管理系统帮你解决用电过程中的“疑难杂症

    一、工业园区用电管理,这些痛点你中招了吗?​ ​工业园区作为产业聚集的重要区域,用电管理至关重要。但在实际运营中,不少园区都面临着一系列棘手的用电难题。​ 1.能耗居高不下,是许多工业园区的心头之痛。生产设备与辅助系统用电分散,缺乏全局优化策略,使得峰谷电价利用不足 ,白白浪费了降低用电成本的机会。就好比一个大型机械制造园区,众多大型加工设备全天不间断运转,在高峰电价时段也未能合理调整生产安排,导致每月电
    的头像 发表于 06-13 17:07 905次阅读
    工业园区用电管理混乱、损耗高?安科瑞 Acrel3000电能管理系统帮你解决用电过程中的“<b class='flag-5'>疑难杂症</b>”

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料
    发表于 06-06 17:06 17次下载

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 8次下载

    IGBT功率模块动态测试中夹具散电感的影响

    在IGBT功率模块的动态测试中,夹具的散电感(Stray Inductance,Lσ)是影响测试结果准确性的核心因素。散电感由测试夹具的layout、材料及连接方式引入,会导致开关波形畸变、电压尖峰升高及损耗测量偏差。
    的头像 发表于 06-04 15:07 2589次阅读
    IGBT功率模块动态测试中夹具<b class='flag-5'>杂</b>散电感的影响

    别让宿舍用电隐患,成为校园安全的“定时炸弹”!安科瑞智慧安全用电云平台帮你解决各种“疑难杂症

    一、校园用电 “雷区” 大盘点 (一)私拉乱接,电路 “蜘蛛网” 走进学生宿舍,常常能看到这样的场景:从床铺上方,一根插线板歪歪斜斜地拉到书桌旁,上面挂满了手机充电器、台灯、电脑等各种设备的插头 ,就像一张杂乱无章的 “蜘蛛网”。这些私拉乱接的电线,就像一颗颗隐藏的定时炸弹,随时可能引爆危险。 从电气原理上来说,电线在正常铺设时,会考虑到其绝缘性和散热条件。而私拉乱接的电线,往往随意缠绕,容易被尖锐物体刮擦、
    的头像 发表于 06-04 12:07 1058次阅读
    别让宿舍用电隐患,成为校园安全的“定时炸弹”!安科瑞智慧安全用电云平台帮你解决各种“<b class='flag-5'>疑难杂症</b>”