0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32編程疑難雜癥

edager ? 來(lái)源:edager ? 作者:edager ? 2024-03-28 23:29 ? 次閱讀

最近遇到一個(gè)奇怪的問(wèn)題:

如果用一個(gè)程序單獨(dú)用定時(shí)器內(nèi)中斷每隔1s點(diǎn)亮LED,此時(shí)LED亮度是正常的,單獨(dú)的呼吸燈程序LED亮度也正常

后來(lái)另外寫(xiě)了一個(gè)程序?qū)⑸厦娑〞r(shí)器內(nèi)部中斷每隔1s點(diǎn)亮LED的功能跟PWM呼吸燈的程序合并在一起后呼吸燈亮度就變的很暗了,但是呼吸燈是能夠正常呼吸的

以上是什么原因?qū)е碌?

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)
{
//íaéè2?êy?á11ì?
GPIO_InitTypeDef GPIO_InitStruct;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_OCInitTypeDef TIM_OCInitStruct;

//íaéèê±?ó?a??
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

//??ó3é?òy??PA6μ?PC6
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);

//GPIO?á11ì?2?êyéè??
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);

//????ê±?ùμ¥?aμ?ê±?ó?′
TIM_InternalClockConfig(TIM3);

//?¨ê±?÷ê±?ù?á11ì?2?êyéè??
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 ?¤·??μ?μêy
TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;
TIM_TimeBaseStructInit(&TIM_TimeBaseInitStruct);

//ê?3?±è???á11ì?2?êyéè??
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 ??êy?÷
TIM_OC1Init(TIM3, &TIM_OCInitStruct);
TIM_OC2Init(TIM3, &TIM_OCInitStruct);

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

//ê1?ü?¨ê±?÷
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);
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23277

    瀏覽量

    660844
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5186

    瀏覽量

    213916
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    355980
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3615

    瀏覽量

    93731
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    散有什么影響?散從哪里來(lái)?

    說(shuō)到射頻的難點(diǎn)不得不提散,散也是射頻被稱(chēng)為“玄學(xué)”的來(lái)源。散也是學(xué)習(xí)射頻必經(jīng)的一個(gè)難點(diǎn)。本篇文章就來(lái)講一下散。
    的頭像 發(fā)表于 11-05 09:59 ?1580次閱讀
    <b class='flag-5'>雜</b>散有什么影響?<b class='flag-5'>雜</b>散從哪里來(lái)?

    DP83TC812疑難解答指南

    電子發(fā)燒友網(wǎng)站提供《DP83TC812疑難解答指南.pdf》資料免費(fèi)下載
    發(fā)表于 10-31 10:09 ?0次下載
    DP83TC812<b class='flag-5'>疑難</b>解答指南

    DP83822 疑難解答指南應(yīng)用手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《DP83822 疑難解答指南應(yīng)用手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-09 11:09 ?1次下載
    DP83822 <b class='flag-5'>疑難</b>解答指南應(yīng)用手冊(cè)

    DP83867 疑難解答指南

    電子發(fā)燒友網(wǎng)站提供《DP83867 疑難解答指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-09 09:34 ?0次下載
    DP83867 <b class='flag-5'>疑難</b>解答指南

    DP83826疑難解答指南

    電子發(fā)燒友網(wǎng)站提供《DP83826疑難解答指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 09:48 ?0次下載
    DP83826<b class='flag-5'>疑難</b>解答指南

    測(cè)試工作中的哎呀,當(dāng)時(shí)怎么沒(méi)有想到

    呢?但實(shí)際情況是,逃逸到線上的缺陷,疑難雜癥式的極端異常的問(wèn)題很少,大部分都不復(fù)雜且可以在設(shè)計(jì)和開(kāi)發(fā)中規(guī)避,或者在測(cè)試過(guò)程中被識(shí)別出來(lái)。針對(duì)此類(lèi)問(wèn)題,從測(cè)試覆蓋度的角度,本文試圖解釋一下為何會(huì)發(fā)生這樣的事
    的頭像 發(fā)表于 09-06 09:45 ?263次閱讀
    測(cè)試工作中的哎呀,當(dāng)時(shí)怎么沒(méi)有想到

    stm32單片機(jī)用什么軟件編程

    STM32單片機(jī)是一種廣泛應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的微控制器,具有高性能、低功耗、豐富的外設(shè)接口等特點(diǎn)。要對(duì)STM32單片機(jī)進(jìn)行編程,需要選擇合適的軟件工具。 概述 STM32單片機(jī)
    的頭像 發(fā)表于 09-02 10:16 ?1334次閱讀

    從技術(shù)小白到“中國(guó)汽車(chē)示波器診斷第一人”

    虹科故事系列08202401本期導(dǎo)讀虹科汽車(chē)售后事業(yè)部負(fù)責(zé)人陳國(guó)飛,虹科高級(jí)工程師,擁有16年汽車(chē)售后診斷技術(shù)經(jīng)驗(yàn)。他精通示波器診斷和噪音振動(dòng)檢測(cè)技術(shù),善于解決汽車(chē)診斷的疑難雜癥,多次獲得主機(jī)廠售后
    的頭像 發(fā)表于 08-30 12:09 ?875次閱讀
    從技術(shù)小白到“中國(guó)汽車(chē)示波器診斷第一人”

    DP83869疑難解答指南

    電子發(fā)燒友網(wǎng)站提供《DP83869疑難解答指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 10:24 ?0次下載
    DP83869<b class='flag-5'>疑難</b>解答指南

    虹科故事 從技術(shù)小白到“中國(guó)汽車(chē)示波器診斷第一人”

    虹科汽車(chē)售后事業(yè)部負(fù)責(zé)人陳國(guó)飛,虹科高級(jí)工程師,擁有16年汽車(chē)售后診斷技術(shù)經(jīng)驗(yàn)。他精通示波器診斷和噪音振動(dòng)檢測(cè)技術(shù),善于解決汽車(chē)診斷的疑難雜癥,多次獲得主機(jī)廠售后部門(mén)和修理廠高度好評(píng),同時(shí)受到全球
    的頭像 發(fā)表于 08-13 10:08 ?368次閱讀
    虹科故事 從技術(shù)小白到“中國(guó)汽車(chē)示波器診斷第一人”

    高低溫交變濕熱試驗(yàn)箱的疑難雜癥怎么解決

    高低溫交變濕熱試驗(yàn)箱的是一種復(fù)合類(lèi)試驗(yàn)箱,功能越多,越容易出現(xiàn)問(wèn)題。比如在轉(zhuǎn)換為高溫試驗(yàn)時(shí),溫度的變化無(wú)法達(dá)到預(yù)期數(shù)值,一般情況下可以通過(guò)風(fēng)循環(huán)系統(tǒng)進(jìn)行排查。例如,溫度達(dá)到目標(biāo)數(shù)值所用時(shí)間較長(zhǎng),需要查看一下?lián)醢迨欠裾_\(yùn)行;如果溫度飆升,那么就是控制器有問(wèn)題,及時(shí)處理,如更換控制儀表等。
    的頭像 發(fā)表于 05-29 08:33 ?392次閱讀
    高低溫交變濕熱試驗(yàn)箱的<b class='flag-5'>疑難雜癥</b>怎么解決

    STM32疑難雜癥之一:Printf的使用

    一、Printf簡(jiǎn)介Printf是一個(gè)標(biāo)準(zhǔn)的C庫(kù)API,用來(lái)打印信息顯示的。Printf的底層輸出調(diào)用,在windows環(huán)境下是fputc函數(shù),在GNUC環(huán)境下是__io_putchar函數(shù)。Printf主要做兩件事:第一件是將參數(shù)字符串以及可變參數(shù)進(jìn)行解析,格式化成一串字符串。第二件事就是將格式化的字符串一個(gè)字節(jié)一個(gè)字節(jié)的輸出出去(至于以什么樣的方式輸出那
    的頭像 發(fā)表于 04-02 08:09 ?3698次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>疑難雜癥</b>之一:Printf的使用

    如何利用lighttools實(shí)現(xiàn)散光仿真呢?

    散光:攝像鏡頭形成物體的實(shí)像時(shí), 除了成像光線,還有其他非成像光線在光學(xué)系統(tǒng)像面上擴(kuò)散,這些非成像光線就叫做散光,散光可分為鬼像和光。
    的頭像 發(fā)表于 03-13 09:22 ?2461次閱讀
    如何利用lighttools實(shí)現(xiàn)<b class='flag-5'>雜</b>散光仿真呢?

    光學(xué)設(shè)計(jì)中的散光

    光學(xué)系統(tǒng)中的散光示意圖(來(lái)自網(wǎng)絡(luò)) 光學(xué)設(shè)計(jì)中的散光是從哪來(lái)的?在設(shè)計(jì)中“散光”概念的詮釋和理解對(duì)于不同的光學(xué)設(shè)計(jì)者目前并不一致,導(dǎo)致設(shè)計(jì)者之間的交流受阻,在某種程度上阻礙了
    的頭像 發(fā)表于 02-22 06:34 ?440次閱讀
    光學(xué)設(shè)計(jì)中的<b class='flag-5'>雜</b>散光