<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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)
{
//í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);
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    237

    文章

    22449

    瀏覽量

    645878
  • PWM
    PWM
    +關注

    關注

    114

    文章

    4900

    瀏覽量

    209906
  • STM32
    +關注

    關注

    2239

    文章

    10671

    瀏覽量

    348745
  • 編程
    +關注

    關注

    88

    文章

    3440

    瀏覽量

    92400
收藏 人收藏

    評論

    相關推薦

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

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

    AD9164散問題如何解決?

    出現一個與基帶信號相關的散點幅度-50dBm左右,影響了射頻輸出的Sfdr。具體現象: 輸出2.2ghz點頻時,散點在2.6GHz 輸出2.3ghz點頻時,散在2.5ghz 輸出2.4ghz點頻
    發表于 12-04 07:39

    羅盤為什么會出現Bad Compass Health

    pixhawk飛控疑難雜癥解決方案
    發表于 11-27 09:38 ?0次下載

    使用USART實現STM32F0xx應用編程

    電子發燒友網站提供《使用USART實現STM32F0xx應用編程 .pdf》資料免費下載
    發表于 09-21 14:43 ?0次下載
    使用USART實現<b class='flag-5'>STM32</b>F0xx應用<b class='flag-5'>編程</b>

    STM32F10xxx閃存編程手冊

    電子發燒友網站提供《STM32F10xxx閃存編程手冊.pdf》資料免費下載
    發表于 09-18 10:33 ?11次下載
    <b class='flag-5'>STM32</b>F10xxx閃存<b class='flag-5'>編程</b>手冊

    gd32和stm32編程區別

    gd32和stm32編程區別 GD32和STM32是目前市場上比較流行的兩種芯片,它們都具有高性能、低功耗和豐富的外設等特點,因此得到了廣泛的應用。但是,GD32和STM32
    的頭像 發表于 08-16 11:32 ?5724次閱讀

    ch32和stm32編程有區別嗎?

    ch32和stm32編程有區別嗎? STM32是一個系列的單片機,其核心中央處理單元(CPU)使用ARM Cortex-M內核。因此,STM32編程
    的頭像 發表于 08-16 11:15 ?922次閱讀

    變頻器疑難雜癥,非尋常工程師能破解!#硬聲創作季

    變頻器
    或許
    發布于 :2023年07月25日 15:01:55

    Linux問題故障定位大全

    有時候會遇到一些疑難雜癥,并且監控插件并不能一眼立馬發現問題的根源。
    的頭像 發表于 07-10 10:27 ?332次閱讀
    Linux問題故障定位大全

    開關電源方案設計 開關電源疑難雜癥解決 兩段式PFC

    電源
    YS YYDS
    發布于 :2023年06月24日 23:33:56

    三臺疑難雜癥 焊機維修

    電工基礎
    YS YYDS
    發布于 :2023年06月21日 22:41:31

    STM32F10xxx閃存編程參考手冊(中文)

    編程手冊介紹了如何燒寫STM32F101xx、STM32F102xx和STM32F103xx微控制器的閃存存 儲器。為方便起見,在本文中除特別說明外,統稱它們為
    發表于 06-19 17:08 ?29次下載

    21個最常見晶振應用疑難問題及解答

    21個最常見晶振應用疑難問題及解答
    的頭像 發表于 06-10 16:56 ?975次閱讀

    STM32單片機編程方式及工作原理

    STM32單片機編程可以使用多種不同的編程語言和工具,下面是一些常用的編程方式:   C語言編程:C語言是
    的頭像 發表于 05-31 17:22 ?5428次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>