找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1487|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32點(diǎn)亮LED還有按鍵,PWM波 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:684629 發(fā)表于 2020-4-6 15:23 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
下面是部分源碼!可以根據(jù)代碼進(jìn)行proteus仿真,親測可以運(yùn)行1
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "exti.h"
  7. #include "iwdg.h"
  8. #include "pwm.h"


  9. int main(void)
  10. {
  11.         u8 key=0;
  12.         static  u16 led0pwmval=0;  
  13.         //u8 dir=1;
  14.     HAL_Init();                                     //初始化HAL庫   
  15.     Stm32_Clock_Init(RCC_PLL_MUL9);           //設(shè)置時鐘,72M
  16.         delay_init(8);                               //初始化延時函數(shù)
  17.         LED_Init();                                                        //初始化LED       
  18.         KEY_Init();                                //初始化按鍵
  19.         delay_ms(10);
  20.         LED0=0;
  21.         LED1=1;
  22.         LED2=0;
  23.         LED3=1;
  24.         LED4=0;
  25.         LED5=1;
  26.    TIM1_PWM_Init(500-1,72-1);               //72M/72=1M的計(jì)數(shù)頻率,自動重裝載為500,那么PWM頻率為1M/500=2kHZ
  27.         EXTI_Init();
  28. //    while(1)
  29. //    {
  30. //                delay_ms(10);                
  31. //                if(dir)led0pwmval++;                                //dir==1 led0pwmval遞增
  32. //                else led0pwmval--;                                        //dir==0 led0pwmval遞減
  33. //                if(led0pwmval>300)dir=0;                        //led0pwmval到達(dá)300后,方向?yàn)檫f減
  34. //                if(led0pwmval==0)dir=1;                                //led0pwmval遞減到0后,方向改為遞增
  35. //                TIM_SetTIM1Compare2(led0pwmval);        //修改比較值,修改占空比
  36. //    }
  37.         //HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2,GPIO_PIN_RESET);                                                                //點(diǎn)亮LED
  38.         //EXTI_Init();
  39.        
  40.         while(1)
  41.         {
  42. //                if(KEY_Scan(0)==WKUP_PRES)          //如果WK_UP按下,喂狗
  43. //        {
  44. //            IWDG_Feed();                            //喂狗
  45. //        }
  46. //        delay_ms(10);
  47.        
  48.        
  49.                 key=KEY_Scan(0);                                //得到鍵值
  50.                
  51.        
  52.                 switch(key)
  53.                 {                                 
  54.                         case KEY0_PRES:
  55.                         LED0=!LED0;
  56.                                 break;
  57.                         case KEY1_PRES:
  58.                         LED2=!LED2;                               
  59.        break;
  60.                         case WKUP_PRES:                               
  61.                         LED0=!LED0;
  62.                         LED1=!LED1;
  63.                         LED2=!LED2;
  64.                                 break;
  65.                         default:
  66.                                 delay_ms(10);       
  67.                 }

  68. //                switch(key)
  69. //                {                                 
  70. //                        case KEY0_PRES:
  71. //                        led0pwmval+=30;
  72. //                          TIM_SetTIM1Compare2(led0pwmval);
  73. //                                break;
  74. //                        case KEY1_PRES:
  75. //                                led0pwmval-=30;
  76. //                          TIM_SetTIM1Compare2(led0pwmval);
  77. //                                break;
  78. //                        case WKUP_PRES:                               
  79. //                        LED0=!LED0;
  80. //                        LED1=!LED1;
  81. //                        LED2=!LED2;
  82. //                                break;
  83. //                        default:
  84. //                                delay_ms(10);       
  85. //                }
  86.         }
  87. }
復(fù)制代碼


程序: STM32程序2.0.7z (416.45 KB, 下載次數(shù): 16)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表