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

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

Rainbow通過PWM輸出控制LED亮度

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年05月06日   【字體:

    PWM廣泛用于電機調速、LED控制器調光等領域,有些開源硬件(如:Arduino)將這種輸出稱之為“模擬輸出”。Rainbow使用的MCU包含四個通用定時器,每個定時器可以支持四個通道的PWM輸出,所以理論上我們可以使用的PWM輸出管腳有16個。Rainbow的軟件設計中使用36M時鐘作為定時器的計數時鐘,使用12bit的計數,因此占空比可以在0-100%之間有4096個不同的PWM輸出等級,對應的PWM波的頻率大約為9K左右。

 
    在Rainbow中進行PWM輸出非常簡單,只需要按照下列步驟即可:
    1、設置對應管腳的輸出模式為:GPIO_Mode_Out_PP,例如:我們使用PA0輸出PWM,pinMode(PA0, GPIO_Mode_Out_PP);
    2、調用pwmWrite()在指定管腳輸出PWM,如:pwmWrite(PA0, 100),表示在PA0口輸出的PWM占空比為:100/4096 * 100%
 
    在軟件包的“Projects\PWM”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。來看看main.cpp的代碼:
#include "WProgram.h"
 
void setup()
{
  //初始化開發板
  boardInit();
  //設置LED的輸出模式
  pinMode(LED1_PIN, GPIO_Mode_Out_PP);
}
 
void loop()
{
  //先讓LED從暗變亮
  for(int16_t i=0; i<0x0FFF; i+=100)
  {
    pwmWrite(LED1_PIN, i);
    //延時100ms
    delay(100);
  }
 
  //再讓LED從亮變暗
  for(int16_t i=0x0FFF; i>0; i-=100)
  {
    pwmWrite(LED1_PIN, i);
    //延時100ms
    delay(100);
  }
}
 
int main(void)
{
  setup();
  while(1) loop();
}
    程序非常簡單,在setup()函數中設置了PWM輸出管腳的模式為GPIO_Mode_Out_PP,然后通過一個循環使得LED由暗變亮,然后再由亮變暗,周而復始進行。
 
    上面的程序編譯無誤后,將程序燒寫到Rainbow中,我們可以看到板載的LED亮度由暗變亮,然后再由亮變暗。
關閉窗口

相關文章

主站蜘蛛池模板: 精品久久久久一区二区国产 | 国产精品久久久久久久久久久久久 | 久久久久国产一区二区三区 | www.99热| 久久久久国产精品一区二区 | 久久国产亚洲 | 日韩视频一区二区 | 中文字幕免费在线 | 91精品国产一二三 | 在线成人精品视频 | 伊人在线 | 蜜桃综合在线 | 中文字幕一区二区三区四区五区 | 91偷拍精品一区二区三区 | 欧美精品二区 | 在线免费观看视频你懂的 | 一级特黄a大片 | 亚洲欧美综合精品久久成人 | 99爱国产| 伊人焦久影院 | 国产色婷婷精品综合在线手机播放 | 亚洲成人精品一区 | 老子午夜影院 | 成人影院午夜 | 欧美4p| 亚洲日本一区二区 | 99色播| 国产精品久久av | 国产在线观看一区二区 | 中文字幕黄色大片 | 久久高清国产视频 | 日本亚洲欧美 | 97日日碰人人模人人澡分享吧 | 亚洲精品亚洲人成人网 | 中文字幕国产精品视频 | www久久久 | 99久久免费精品国产免费高清 | 国产精品免费福利 | 国产精品区一区二区三区 | 国产精品美女久久久 | 一区二区三区中文 |