久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: TIM—全彩LED燈控制 簡單STM32實驗程序 [打印本頁]

作者: lier    時間: 2019-4-10 14:12
標(biāo)題: TIM—全彩LED燈控制 簡單STM32實驗程序
制作出來的實物圖如下:


單片機源程序如下:
  1. #include "./color_led/bsp_color_led.h"


  2. /**
  3.   * @brief  配置COLOR_TIMx復(fù)用輸出PWM時用到的I/O
  4.   * @param  無
  5.   * @retval 無
  6.   */
  7. static void COLOR_TIMx_GPIO_Config(void)
  8. {
  9.   GPIO_InitTypeDef GPIO_InitStructure;

  10.   /* GPIO clock enable */
  11.   RCC_APB2PeriphClockCmd(COLOR_TIM_GPIO_CLK, ENABLE);

  12.           /*IO設(shè)置*/
  13.         COLOR_GPIO_REMAP_FUN();
  14.   
  15.   /* 配置LED燈用到的引腳 */
  16.         //紅
  17.   GPIO_InitStructure.GPIO_Pin =  COLOR_RED_TIM_LED_PIN ;        
  18.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                    // 復(fù)用推挽輸出
  19.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  20.   GPIO_Init(COLOR_RED_TIM_LED_PORT, &GPIO_InitStructure);
  21.         
  22.         //綠
  23.         GPIO_InitStructure.GPIO_Pin =  COLOR_GREEN_TIM_LED_PIN ;
  24.   GPIO_Init(COLOR_GREEN_TIM_LED_PORT, &GPIO_InitStructure);
  25.         
  26.         //藍(lán)
  27.         GPIO_InitStructure.GPIO_Pin =  COLOR_BLUE_TIM_LED_PIN ;
  28.   GPIO_Init(COLOR_BLUE_TIM_LED_PORT, &GPIO_InitStructure);

  29. }

  30. /**
  31.   * @brief  配置COLOR_TIMx輸出的PWM信號的模式,如周期、極性
  32.   * @param  無
  33.   * @retval 無
  34.   */
  35. static void COLOR_TIMx_Mode_Config(void)
  36. {
  37.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  38.         TIM_OCInitTypeDef  TIM_OCInitStructure;                                                                                                                                                               
  39.         
  40.         /* 設(shè)置TIM CLK 時鐘 */
  41.   COLOR_TIM_APBxClock_FUN(COLOR_TIM_CLK, ENABLE);                                         //使能COLOR_TIMx時鐘

  42.   /* 基本定時器配置 */                 
  43.   TIM_TimeBaseStructure.TIM_Period = 255;                                                                 //當(dāng)定時器從0計數(shù)到255,即為256次,為一個定時周期
  44.   TIM_TimeBaseStructure.TIM_Prescaler = 1999;                                                                    //設(shè)置預(yù)分頻
  45.   TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;                        //設(shè)置時鐘分頻系數(shù):不分頻(這里用不到)
  46.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;          //向上計數(shù)模式
  47.   TIM_TimeBaseInit(COLOR_TIMx, &TIM_TimeBaseStructure);

  48.   /* PWM模式配置 */
  49.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;                                            //配置為PWM模式1
  50.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;        //使能輸出
  51.   TIM_OCInitStructure.TIM_Pulse = 0;                                                                                                          //設(shè)置初始PWM脈沖寬度為0        
  52.   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;            //當(dāng)定時器計數(shù)值小于CCR_Val時為低電平

  53.         //使能通道和預(yù)裝載
  54.   COLOR_RED_TIM_OCxInit(COLOR_TIMx, &TIM_OCInitStructure);                                                                 
  55.   COLOR_RED_TIM_OCxPreloadConfig(COLOR_TIMx, TIM_OCPreload_Enable);                                                
  56.   
  57.         //使能通道和預(yù)裝載
  58.   COLOR_GREEN_TIM_OCxInit(COLOR_TIMx, &TIM_OCInitStructure);                                                                                 
  59.   COLOR_GREEN_TIM_OCxPreloadConfig(COLOR_TIMx, TIM_OCPreload_Enable);                                                
  60.   
  61.         //使能通道和預(yù)裝載
  62.   COLOR_BLUE_TIM_OCxInit(COLOR_TIMx, &TIM_OCInitStructure);                                                                                 
  63.   COLOR_BLUE_TIM_OCxPreloadConfig(COLOR_TIMx, TIM_OCPreload_Enable);                                                

  64.   TIM_ARRPreloadConfig(COLOR_TIMx, ENABLE);                                                                                                         //使能COLOR_TIMx重載寄存器ARR

  65.   /* COLOR_TIMx enable counter */
  66.   TIM_Cmd(COLOR_TIMx, ENABLE);                                                                                                   //使能定時器               
  67. }

  68. /**
  69.   * @brief  COLOR_TIMx 呼吸燈初始化
  70.   *         配置PWM模式和GPIO
  71.   * @param  無
  72.   * @retval 無
  73.   */
  74. void COLOR_TIMx_LED_Init(void)
  75. {
  76.         COLOR_TIMx_GPIO_Config();
  77.         COLOR_TIMx_Mode_Config();        
  78. }

  79. //停止pwm輸出
  80. void COLOR_TIMx_LED_Close(void)
  81. {
  82.         SetColorValue(0,0,0);
  83.         TIM_Cmd(COLOR_TIMx, DISABLE);                                                                           //失能定時器                                                
  84.         COLOR_TIM_APBxClock_FUN(COLOR_TIM_CLK, DISABLE);         //失能定時器時鐘
  85.         
  86.         //關(guān)閉LED燈
  87.         GPIO_SetBits(COLOR_RED_TIM_LED_PORT,COLOR_RED_TIM_LED_PIN);
  88.         GPIO_SetBits(COLOR_GREEN_TIM_LED_PORT,COLOR_GREEN_TIM_LED_PIN);
  89.         GPIO_SetBits(COLOR_BLUE_TIM_LED_PORT,COLOR_BLUE_TIM_LED_PIN);
  90. }

  91. /**
  92.   * @brief  設(shè)置RGB LED的顏色
  93.         * @param  rgb:要設(shè)置LED顯示的顏色值格式RGB888
  94.   * @retval 無
  95.   */
  96. void SetRGBColor(uint32_t rgb)
  97. {
  98.         //根據(jù)顏色值修改定時器的比較寄存器值
  99.         COLOR_TIMx->COLOR_RED_CCRx = (uint8_t)(rgb>>16);                        //R
  100.         COLOR_TIMx->COLOR_GREEN_CCRx = (uint8_t)(rgb>>8);          //G     
  101.         COLOR_TIMx->COLOR_BLUE_CCRx = (uint8_t)rgb;                                                //B
  102. }


  103. /**
  104.   * @brief  設(shè)置RGB LED的顏色
  105.         * @param  r\g\b:要設(shè)置LED顯示的顏色值
  106.   * @retval 無
  107.   */
  108. void SetColorValue(uint8_t r,uint8_t g,uint8_t b)
  109. {
  110.         //根據(jù)顏色值修改定時器的比較寄存器值
  111.         COLOR_TIMx->COLOR_RED_CCRx = r;        
  112.         COLOR_TIMx->COLOR_GREEN_CCRx = g;               
  113.         COLOR_TIMx->COLOR_BLUE_CCRx = b;        
  114. }
  115. /*********************************************END OF FILE**********************/
復(fù)制代碼
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @brief   全彩LED燈例程

  7.   ******************************************************************************
  8.   */
  9.   
  10. #include "stm32f10x.h"
  11. #include "./color_led/bsp_color_led.h"


  12. #define SOFT_DELAY() Delay(0xFFFFFF);

  13. void Delay(__IO u32 nCount);

  14. /**
  15.   * @brief  主函數(shù)
  16.   * @param  無
  17.   * @retval 無
  18.   */
  19. int main(void)
  20. {                        
  21.         /* 初始化LED燈 */
  22.         COLOR_TIMx_LED_Init();

  23.         while(1)
  24.         {
  25.                 //顯示各種顏色
  26.                 SetRGBColor(0x8080ff);
  27.                 SOFT_DELAY();
  28.                
  29.                 SetRGBColor(0xff8000);
  30.                 SOFT_DELAY();
  31.                
  32.                 SetRGBColor(0xffc90e);
  33.                 SOFT_DELAY();
  34.                
  35.                 SetColorValue(181,230,29);
  36.                 SOFT_DELAY();

  37.                 SetColorValue(255,128,64);
  38.                 SOFT_DELAY();               

  39.         }               
  40. }


  41. void Delay(__IO uint32_t nCount)         //簡單的延時函數(shù)
  42. {
  43.         for(; nCount != 0; nCount--);
  44. }
  45. /*********************************************END OF FILE**********************/

復(fù)制代碼


所有資料51hei提供下載:
TIM—全彩LED燈.7z (180.64 KB, 下載次數(shù): 56)



作者: 萬妮馬    時間: 2020-3-13 23:53
哈哈,不錯,踏破鐵鞋無覓處,得來全不費工夫
作者: 被寧神的小Y    時間: 2020-3-16 16:00
好東西  希望有機會可以試一試  lz好人
作者: 285623501    時間: 2020-3-17 11:21
好東西  希望有機會
作者: xxlll    時間: 2020-10-7 15:06
我一摸一樣照著寫的 為社么我的燈不亮啊   
function "COLOR_TIMx_Mode_Config" was declared but never referenced
有這個警告




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费黄色小视频 | 亚洲第一色 | 欧美精品福利 | 日本不卡在线视频 | 国产在线视频网站 | 中文字幕在线免费视频 | 女子spa高潮呻吟抽搐 | 欧美日韩免费 | 久久国产精品免费 | 亚洲视频区 | 国产精品欧美一区二区 | 日韩一区在线播放 | 欧美一区二区三区在线 | 国产精品高潮呻吟av | 久久久久久网 | 国产一级二级片 | 久久精品三级 | 躁躁躁日日躁 | 日韩专区在线观看 | 亚洲精品麻豆 | 国产精品五区 | 亚洲精品乱码久久久久久蜜桃91 | 成人免费视频国产免费 | 毛片毛片毛片毛片毛片 | 日韩欧美自拍 | 99热| 91精品看片| 欧美一区二区三区四区五区 | 在线网站免费观看18 | 一级真人毛片 | 亚洲影视一区 | 中文字幕观看 | 亚洲欧美久久 | 曰本毛茸茸性生活 | 中国av片| www婷婷| 一区二区视频在线 | 欧美日韩高清在线 | 在线亚洲欧美 | 亚洲美女一区 | 天天躁日日躁狠狠躁av麻豆男男 |