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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2605|回復: 1
打印 上一主題 下一主題
收起左側

基于STM32的pwmRGB調色程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:569034 發(fā)表于 2019-10-14 19:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include "LIGHT/Light.h"
  2. #include "DELAY/Delay.h"
  3. #include "TIMx/TIMx.h"

  4. u16 RGB_buffer[69] = {0};
  5. /**
  6. * 功能:初始燈光
  7. * 參數(shù):
  8. *          brightness:初始化亮度 10-100
  9. *          colortemp:初始化色溫 0-100     
  10. *          red:RGB紅色比例 0-255
  11. *          green:RGB綠色比例 0-255
  12. *          blue:RGB藍色比例 0-255   
  13. * 返回值:None
  14. */
  15. void initLight(u8 brightness,u8 colortemp,u8 red,u8 green,u8 blue)
  16. {
  17.     GPIO_InitTypeDef GPIO_InitStructure;

  18.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);

  19.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);    //禁止JTAG保留SWD
  20.     GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);             //設置JTAG為定時器2部分映射,只使用SWD模式

  21.     /*設置冷光燈*/
  22.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
  23.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  24.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  25.     GPIO_Init(GPIOA, &GPIO_InitStructure);

  26.     /*設置暖光燈*/
  27.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  28.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  29.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  30.     GPIO_Init(GPIOB, &GPIO_InitStructure);

  31.     /*設置RGB*/
  32.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  33.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  34.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  35.     GPIO_Init(GPIOB, &GPIO_InitStructure);

  36.     setLight(brightness,colortemp);
  37.     setRGB(red,green,blue);
  38. }

  39. /**
  40. * 功能:設置燈光亮度和色溫
  41. * 參數(shù):
  42. *          brightness:亮度 10-100
  43. *          colortemp:色溫 0-100         
  44. * 返回值:None
  45. */
  46. void setLight(u8 brightness,u8 colortemp)
  47. {
  48.     /**
  49.      * 無論是亮度還是色溫,最終都體現(xiàn)在LED的亮度上
  50.      * LED最終的亮度計算公式為:滿占空比(重裝載值) * 亮度百分比 * 色溫百分比
  51.      * 并且要保證冷光和暖光的色溫比值之和為100%
  52.      * */
  53.     TIM_SetCompare1(TIM2,getPeriod(TIM2)*brightness/100*colortemp/100);         //設置冷光 對應PA15 TIM2_CH1
  54.     TIM_SetCompare2(TIM2,getPeriod(TIM2)*brightness/100*(100-colortemp)/100);   //設置暖光 對應PB3  TIM2_CH2
  55. }


  56. /**
  57. * 功能:設置RGB顏色
  58. * 參數(shù):   
  59. *          red:RGB紅色比例 0-255
  60. *          green:RGB綠色比例 0-255
  61. *          blue:RGB藍色比例 0-255   
  62. * 返回值:None
  63. */
  64. void setRGB(u8 red,u8 green,u8 blue)
  65. {
  66.     u8 i = 0;
  67.       
  68.     u32 rgb_value = green<<16 | red<<8 | blue;
  69.       
  70.         while(DMA_GetFlagStatus(DMA1_FLAG_TC1)==RESET);
  71.         DMA_ClearFlag(DMA1_FLAG_TC1);
  72.       
  73.         DMA_Cmd(DMA1_Channel1, DISABLE);
  74.         DMA_SetCurrDataCounter(DMA1_Channel1,sizeof(RGB_buffer));
  75.     for(i=0;i<24;++i)
  76.     {
  77.         if((rgb_value<<i)&0x800000)     //高位先發(fā),此時高位為1時
  78.         {
  79.             RGB_buffer[i+45] = 61;       //68%占空比           
  80.         }else
  81.         {
  82.             RGB_buffer[i+45] = 28;       //32%占空比
  83.         }
  84.     }
  85.         DMA_Cmd(DMA1_Channel1, ENABLE);
  86. }

復制代碼


PWM+DMA實現(xiàn)RGB調色.7z

183.52 KB, 下載次數(shù): 59, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:511461 發(fā)表于 2019-10-16 15:10 | 只看該作者
樓主,有沒有原理圖
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品68久久久一区 | 亚洲视频免费在线观看 | 少妇性l交大片免费一 | 午夜天堂精品久久久久 | 国产精品自拍啪啪 | 国产在线精品一区二区三区 | 免费看片在线播放 | 91精品久久久久久综合五月天 | 成人三级av | 日韩一区二区视频 | 操操日| 国产色婷婷精品综合在线手机播放 | 中文字幕亚洲欧美 | 亚洲成人精品一区二区 | 国产欧美日韩精品在线观看 | 国产日韩一区二区三区 | 日本一区二区视频 | 欧美aⅴ | 中文字幕韩在线第一页 | 久久91av| 国产精品视频yy9299一区 | 国产在线精品一区二区三区 | 一区二区三区国产精品 | 男人天堂99| 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 日本高清不卡视频 | 97精品国产97久久久久久免费 | 国产精品一区二区三区久久久 | 91在线精品视频 | 亚洲精品电影网在线观看 | 久久一级免费视频 | 久久综合久久自在自线精品自 | 一片毛片| 人人澡人人射 | 国产日日操 | 欧州一区二区三区 | 国产日韩欧美在线 | 中文字幕欧美日韩 | 欧美黑人国产人伦爽爽爽 | 免费观看的黄色网址 | 精品国产女人 |