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
    +关注

    关注

    243

    文章

    24436

    浏览量

    687458
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5847

    浏览量

    223822
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371170
  • 编程
    +关注

    关注

    90

    文章

    3708

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是晶振的散电容?

    什么是晶振的散电容?晶振的散电容,也叫做寄生电容,是指电路中非人为设计、由物理结构自然产生的、有害的隐藏电容。它为什么重要?(影响)散电容之所以关键,是因为它会直接影响晶振的振荡频率精度。核心
    的头像 发表于 11-13 18:13 134次阅读
    什么是晶振的<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 542次阅读
    工业园区用电管理混乱、损耗高?安科瑞 Acrel3000电能管理系统帮你解决用电过程中的“<b class='flag-5'>疑难杂症</b>”

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

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

    STM32F40xxx和STM32f41xx flash编程手册

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

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

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

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

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

    变电所电力运维困境大揭秘!这个电力运维云平台帮你解决所有“疑难杂症

    一、变电所电力运维:传统模式下的重重困境 在现代工业和生活中,变电所作为电力系统的关键环节,承担着电压转换、电力分配和电能质量调控的重要任务。然而,传统的变电所电力运维模式正面临着一系列严峻的挑战,这些痛点不仅影响了电力供应的稳定性和可靠性,也增加了运维成本和安全风险。 1.人力成本居高不下是传统变电运维的一大难题。目前,许多变电所仍依赖人工定期巡检,运维人员需要按照固定的时间间隔前往各个变电所进行设备检
    的头像 发表于 05-21 10:18 714次阅读
    变电所电力运维困境大揭秘!这个电力运维云平台帮你解决所有“<b class='flag-5'>疑难杂症</b>”

    电机疑难故障原因分析及解决措施

    ,电机无法拖动负载,最终导致了故障现象的产生。通过对转子发生轴向位移的轴承位置的调整,解除了故障,恢复了正常生产。 **纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:电机疑难故障原因分析
    发表于 05-14 16:31

    光伏储能充电桩配合不默契、成本难降?这平台专治新能源用电 “疑难杂症

    引言:在全球积极推动新能源发展的大背景下,光储充一体化系统凭借其对清洁能源的高效利用、对电网压力的有效缓解以及为电动汽车提供便捷充电服务等优势,成为了能源领域的焦点。从政策导向来看,各国纷纷出台鼓励政策,我国也明确提出构建以新能源为主体的新型电力系统,推动 “源网荷储一体化” 发展 ,光储充一体化系统迎来了前所未有的发展机遇。众多企业和投资者纷纷涌入这个领域,希望在这场能源变革中抢占先机。​ 一、光储充一
    的头像 发表于 04-28 16:32 1137次阅读
    光伏储能充电桩配合不默契、成本难降?这平台专治新能源用电 “<b class='flag-5'>疑难杂症</b>”

    管廊里的 “隐形医生”!全维度监测,精准诊断电缆健康 “疑难杂症

    电缆隧道综合监控系统TLKS-PMG-CTM 一、概述: 在城市化进程加速的今天,电缆隧道作为电力传输的隐形动脉,承载着保障城市能源供应的重要使命。然而,传统的电缆隧道巡检方式不仅效率低下,还存在较高的安全风险。为了应对这一挑战,深圳市特力康科技推出了 电缆隧道综合监控系统TLKS-PMG-CTM ,为电缆隧道的全面、实时监护提供了创新解决方案。 二、工作原理: 电缆隧道综合监控系统TLKS-PMG-CTM 的工作原理是通过集成多种先进的监测技术,如电缆故
    的头像 发表于 04-22 11:52 322次阅读

    STM32F10xxx单片机编程手册

    电子发烧友网站提供《STM32F10xxx单片机编程手册.pdf》资料免费下载
    发表于 04-14 14:56 17次下载

    边带散和开关散的含义是什么?会对电路造成什么影响?

    我在看ADC供电部分的时候,看到边带散和开关散这两词不知道它的含义。请问下大家它们的含义以及它们将会对电路造成什么影响? 谢谢大家了!!!!!
    发表于 12-31 06:32

    DAC3482存在散怎么解决?

    当前DTRU产品中使用了DAC3482,故障率达到12%,从FPGA侧IQ数据到达DAC3482,从3482出口处测量到的信号,发现近端存在散。具体见下图所示。 另外做了如下实验: 1、将
    发表于 12-16 06:23