家電維修班,手機(jī)維修班,電腦維修班,電工班,焊工班,液晶電視維修班,電動(dòng)工具維修班、電動(dòng)車(chē)摩托車(chē)維修班、網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn)、網(wǎng)站設(shè)計(jì)培訓(xùn)、淘寶培訓(xùn)---全國(guó)招生 家電維修班,手機(jī)維修班,電腦維修班,電工班,焊工班,液晶電視維修班,電動(dòng)工具維修班、電動(dòng)車(chē)摩托車(chē)維修班、網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn)、網(wǎng)站設(shè)計(jì)培訓(xùn)、淘寶培訓(xùn)---全國(guó)招生

中日欧洲精品视频在线-中日韩在线观看-中日韩一区二区三区-中日韩精品视频在线观看-狂野欧美老黑粗又硬-狂野猛交xxxx吃奶

您的位置:網(wǎng)站首頁(yè) > 電器維修資料網(wǎng) > 正文 >

STM32 :用PWM的方法實(shí)現(xiàn)熒火蟲(chóng)燈

★★★★★【文章導(dǎo)讀】:STM32 :用PWM的方法實(shí)現(xiàn)熒火蟲(chóng)燈具體內(nèi)容是:復(fù)制一份到自己練習(xí)用的文件夾中,建立工程。先閱讀readme.txt及源程序,了解一些基本信息。從程序中可以知道:(1)使用tim3(2)定時(shí)器的時(shí)鐘頻率是36mhz.(3)pwm信號(hào)的頻率是36khz,這是通過(guò)tim3的arr來(lái)設(shè)置的。…

來(lái)源: 日期:2013-12-5 10:33:16 人氣:標(biāo)簽:

STM32 :用PWM的方法實(shí)現(xiàn)熒火蟲(chóng)燈

      復(fù)制一份到自己練習(xí)用的文件夾中,建立工程。

      

      先閱讀readme.txt及源程序,了解一些基本信息。

      從程序中可以知道:

      (1) 使用tim3

      (2) 定時(shí)器的時(shí)鐘頻率是36mhz.

      (3) pwm信號(hào)的頻率是36khz,這是通過(guò)tim3的arr來(lái)設(shè)置的。arr的值是999,因此pwm的頻率是36mhz/(999+1)=36khz。

      (4) 四個(gè)通道的占空比分別由tim3_ccr1~tim3_ccr4來(lái)確定,算式是:

      (tim3_ccr1/ tim3_arr)* 100

      由此,當(dāng)pwm的頻率是36k時(shí),占空比分辨率接近0.1%。降低頻率,可以獲得更高的分辨率。

      要完成燈的漸亮和漸滅控制,只要定時(shí)改變tim3_ccr1的值就行了。

      如何改變呢?這里用到stm32提供的系統(tǒng)定時(shí)器(systick)

      數(shù)據(jù)手冊(cè)中關(guān)于這個(gè)定時(shí)器的描述如下:

      -------------------------------------------------------------

系統(tǒng)時(shí)基定時(shí)器

      這個(gè)定時(shí)器是專(zhuān)用于實(shí)時(shí)操作系統(tǒng),也可當(dāng)成一個(gè)標(biāo)準(zhǔn)的遞減計(jì)數(shù)器。它具有下述特性:

      ● 24位的遞減計(jì)數(shù)器

      ● 自動(dòng)重加載功能

      ● 當(dāng)計(jì)數(shù)器為0時(shí)能產(chǎn)生一個(gè)可屏蔽系統(tǒng)中斷

      ● 可編程時(shí)鐘源

      而它的使用方法可以在庫(kù)提供的例子中找到。

      有一個(gè)初始化函數(shù):

      void systick_configuration(void)

      {

      if (systick_config((systemfrequency) / 10)) //經(jīng)實(shí)際測(cè)試發(fā)現(xiàn),除以10是100ms,除以100是10ms,依此類(lèi)推

      {

      /* capture error */

      while (1);

      }

      nvic_setpriority(systick_irqn, 0x0);

      }

      這里將其初始化為每100ms產(chǎn)生一次中斷。

      將這個(gè)函數(shù)放在main.c中,在main函數(shù)中調(diào)用它,即完成初始化工作。在system32_it.c中有中斷處理函數(shù)。

      void systick_handler(void)

      {}

      原例子中這里沒(méi)有寫(xiě)代碼,可以根據(jù)需要自行增加相關(guān)代碼來(lái)處理每100ms時(shí)間到的事件。

      代碼如下:

      extern uint16_t dutyratio;

      extern uint8_t changduty;

      void systick_handler(void)

      { static uint8_t counter;

      if(counter》16)

      dutyratio-=62;

      else

      { dutyratio+=62;

      if(dutyratio》999)

      dutyratio=999;

      }

      if(++counter》=32)

      counter=0;

      changduty=1;

      }

      這里定義了兩個(gè)變量,一個(gè)是dutyratio,用來(lái)控制占空比的變化。它在main.c中定義,并初始化為6。初始化tim3_ch1通道時(shí)使用該變量。

      22

      每次中斷則視情況增加或者減少,每次變化的量是62。在systick_handler函數(shù)中,定義了一個(gè)static型的變量counter,它的值在 0~31之間變化。當(dāng)其值在0~15之間時(shí),dutyratio每次加1,這樣一共是加16次,即其 終的值是:6+16*62=998,正好比arr的值小1。當(dāng)counter的值在16~31之間變化時(shí),dutyratio每次減62。這樣,dutyratio的值始終在6~998之間變化,對(duì)應(yīng)的是占空比在:

      6/999*=0.6% ~ 998/999*=99.89% 之間變化。

      changduty是一個(gè)標(biāo)志,用途是通知main函數(shù),占空比已發(fā)生變化,要求更新ccr1。mina函數(shù)的處理如下:

      while (1)

      { if(changduty==1)

      {

      tim3-》ccr1=dutyratio;

      changduty=0;

      }

      }

      在用軟件仿真時(shí),執(zhí)行到tim3-》ccr1=dutyratio;時(shí),外圍部件中的相應(yīng)值并沒(méi)有立即變化。目前還沒(méi)有弄清楚是調(diào)試器的問(wèn)題還是確實(shí)不立即發(fā)生變化。

      1副本.jpg

      使用硬件來(lái)測(cè)試,由于我手邊的板子tim3_ch1上沒(méi)有接led,所以就看不出燈亮的效果了,不過(guò),不要緊,還有示波器。將程序下載入flash后運(yùn)行,觀察gpioa.6,可以看到非常漂亮的波形。用萬(wàn)用表電壓檔測(cè)該引腳的電壓,可以看到電壓平穩(wěn)地上升和下降。所以,我有些懷疑上面提到的那個(gè)ccr1沒(méi)有立即變化僅僅只是調(diào)試器的問(wèn)題。//藍(lán)色的字這個(gè)不對(duì),下面有說(shuō)明。

二、用pwm生成正弦波

      有了pwm,自然就可以用pwm的方法生成正弦波了。下面生成500hz正弦波的方法參考自張明峰的《pic單片機(jī)入門(mén)與實(shí)踐》

      每個(gè)正弦波分成四個(gè)像限,每個(gè)像限16點(diǎn),共64點(diǎn),每點(diǎn)出現(xiàn)2個(gè)pwm周期,故pwm的周期為:2ms/128=156.25us,頻率為64khz。

      tim3 frequency = tim3 counter clock/(arr + 1)

      倒過(guò)來(lái):

      arr=tim3 counter clock/tim3 frequenc - 1 =562.5-1 =561

      如果取arr的值是561的話,那么實(shí)際的頻率是64.056khz,即 終生成為的正弦波頻率是:500.4hz

      有了arr,占空比就取決于ccr1的值了,使用excel可以方便地計(jì)算出第一象限的16個(gè)點(diǎn)的數(shù)據(jù):

      280,307,335,361,387,412,436,458,478,496,513,527,539,548,555,559

      有了第一象限,其他象限都可以鏡像生成了。具體方法請(qǐng)看源程序。

      要用上面的例子修改,還需要做一些工作。

      前面是在systick中做出標(biāo)志,然后在主程序中修改ccr1的值,現(xiàn)在不行了,肯定會(huì)有時(shí)間的誤差,不能這做么,要在pwm輸出后修正,這樣就要在pwm波形輸出時(shí)產(chǎn)生中斷。因此,需要在main函數(shù)中增加以下這個(gè)函數(shù)。

      1.jpg

      這個(gè)函數(shù)哪里來(lái)的呢,很簡(jiǎn)單,從timebase工程中中抄來(lái)的然后將tim2改成tim3就行了^_^。然后在main函數(shù)中調(diào)用它。

      注意,還需要打開(kāi)stm32f10x_conf.h文件,將下面:

      44

      藍(lán)色框里面的包含文件給“解放”出來(lái)。當(dāng)然,同時(shí)要把庫(kù)中的misc.c源程序文件加入工程中來(lái)。否則,編譯是通不過(guò)的。

      為了讓通道1可以產(chǎn)生中斷,還需要做一件事,就是下面藍(lán)色的部分。

      /* tim it enable */

      tim_itconfig(tim3, tim_it_cc1, enable);

      //也是從timebase工程中抄來(lái),再將tim2改成tim3的。

      /* tim3 enable counter */

      tim_cmd(tim3, enable);

      現(xiàn)在該到stm32f10x_it.c中去了,增加一個(gè)中斷處理函數(shù):

      uint16_t sintab[]={280,307,335,361,387,412,436,458,478,496,513,527,539,548,555,559};

      uint8_t count1,count2; //1.像限計(jì)數(shù)器,其值在0~3之間變化 2.其值在0~31之間變化

      void tim3_irqhandler(void)

      {

      if (tim_getitstatus(tim3, tim_it_cc1) != reset)

      {

      tim_clearitpendingbit(tim3, tim_it_cc1);

      if(count2%2==0) //準(zhǔn)備更新,新的值會(huì)在下一次更新

      { switch(count1)

      { case 0: //象限1

      {

      tim3-》ccr1= sintab[count2/2];

      break;

      }

      case 1: //象限2

      { tim3-》ccr1=sintab[15-count2/2];

      break;

      }

      case 2: //象限3

      { tim3-》ccr1=560-sintab[count2/2];

      break;

      }

      case 3: //象限4

      { tim3-》ccr1=560-sintab[15-count2/2];

      break;

      }

      default:break;

      }

      }

      }

      if(++count2==32)

      { count2=0;

      if(++count1==4)

      count1=0;

      }

      }

  • 1
  • 2
  • 下一頁(yè)

【看看這篇文章在百度的收錄情況】

相關(guān)文章

聯(lián)系方式

  • 0731-85579057 , 0731-85569651
  • 點(diǎn)擊這里給我發(fā)消息點(diǎn)擊這里給我發(fā)消息點(diǎn)擊這里給我發(fā)消息
網(wǎng)站欄目導(dǎo)航: 培訓(xùn)課程 手機(jī)硬件 手機(jī)軟件 綜合維修 學(xué)校資訊 考證指南 就業(yè)導(dǎo)航 招生指南 教學(xué)管理 入學(xué)須知 學(xué)校圖片 教學(xué)大綱 師資力量 學(xué)生感言 學(xué)校概況 教學(xué)實(shí)景 手機(jī)維修培訓(xùn)資訊 電腦維修培訓(xùn) 維修間故事 手機(jī)維修培訓(xùn) 液晶電視維修培訓(xùn) 家電維修資料網(wǎng) 電器維修資料網(wǎng) 招生地區(qū) 刷機(jī)教程 家電維修 手機(jī)技巧 老版網(wǎng)站 招生平臺(tái)網(wǎng)絡(luò)工程
友情鏈接: 監(jiān)控安裝培訓(xùn) 電動(dòng)工具維修 家電維修學(xué)校 電工培訓(xùn)學(xué)校 液晶電視維修 焊工培訓(xùn)學(xué)校 電工焊工學(xué)校 電腦維修學(xué)校 家電維修培訓(xùn) 電腦維修培訓(xùn) 家裝電工培訓(xùn)網(wǎng)絡(luò)安裝維護(hù) 主板維修 液晶顯示器 筆記本電腦維修 電腦組裝維護(hù) 電腦硬件維修 電腦維修 電工考證 電工證 裝修電工 水電工 維修電工 電工 焊接技術(shù) 電焊工 焊工 電動(dòng)設(shè)備維修 電動(dòng)工具維修 制冷維修 空調(diào)維修 冰箱維修  更多>>
陽(yáng)光-手機(jī)維修教育品牌學(xué)校
點(diǎn)擊這里給我發(fā)消息 點(diǎn)擊這里給我發(fā)消息 點(diǎn)擊這里給我發(fā)消息
電工培訓(xùn)學(xué)校 電動(dòng)車(chē)維修學(xué)校 摩托車(chē)維修學(xué)校 摩托車(chē)維修培訓(xùn) 手機(jī)維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動(dòng)工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn) 網(wǎng)站設(shè)計(jì)培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校 電工培訓(xùn)學(xué)校 電動(dòng)車(chē)維修學(xué)校 摩托車(chē)維修學(xué)校 摩托車(chē)維修培訓(xùn) 手機(jī)維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動(dòng)工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn) 網(wǎng)站設(shè)計(jì)培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校 電工培訓(xùn)學(xué)校 電動(dòng)車(chē)維修學(xué)校 摩托車(chē)維修學(xué)校 摩托車(chē)維修培訓(xùn) 手機(jī)維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動(dòng)工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn) 網(wǎng)站設(shè)計(jì)培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校 電工培訓(xùn)學(xué)校 電動(dòng)車(chē)維修學(xué)校 摩托車(chē)維修學(xué)校 摩托車(chē)維修培訓(xùn) 手機(jī)維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動(dòng)工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn) 網(wǎng)站設(shè)計(jì)培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校
中山市,固原市,銀川市,玉樹(shù),海東,隴南市,酒泉市,張掖市,天水市,金昌市,蘭州市,榆林市,延安市,渭南市,銅川市,阿里,山南,拉薩市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,畢節(jié),銅仁,遵義市,貴陽(yáng)市,甘孜州,資陽(yáng)市,達(dá)州市,宜賓市,南充市,遂寧市,綿陽(yáng)市,瀘州市,自貢市,三亞市,崇左市,河池市,玉林市,欽州市,梧州市,柳州市,梅州市,肇慶市,湛江市,佛山市,珠海市,韶關(guān)市,湘西州,懷化市,郴州市,張家界市,邵陽(yáng)市,株洲市,仙桃市,隨州市,荊州市,荊門(mén)市,襄樊市,黃石市,駐馬店市,信陽(yáng)市,南陽(yáng)市,漯河市,中衛(wèi)市,石嘴山市,海西,海南藏州,黃南州,海北,甘南,慶陽(yáng)市,平?jīng)鍪?武威市,白銀市,嘉峪關(guān)市,安康市,漢中市,咸陽(yáng)市,寶雞市,林芝,日喀則,昌都,迪慶,德宏,大理,西雙版納,紅河州,臨滄市,麗江市,保山市,曲靖市,黔東州,黔西州,安順市,六盤(pán)水市,涼山州,阿壩州,雅安市,廣安市,眉山市,內(nèi)江市,廣元市,德陽(yáng)市,攀枝花市,成都市,海口市,來(lái)賓市,百色市,貴港市,北海市,桂林市,南寧市,云浮市,揭陽(yáng)市,潮州市,清遠(yuǎn)市,陽(yáng)江市,汕尾市,惠州市,茂名市,江門(mén)市,汕頭市,深圳市,廣州市,婁底市,永州市,益陽(yáng)市,岳陽(yáng)市,湘潭市,長(zhǎng)沙市,恩施州,黃岡市,孝感市,鄂州市,十堰市,武漢市,周口市,商丘市,三門(mén)峽市,許昌市,焦作市,安陽(yáng)市,鶴壁市,平頂山市,開(kāi)封市,鄭州市,聊城市,濱州市,德州市,萊蕪市,日照市,泰安市,煙臺(tái)市,濰坊市,東營(yíng)市,淄博市,上饒市,濟(jì)南市,撫州市,宜春市,贛州市,新余市,九江市,景德鎮(zhèn)市,寧德市,南平市,泉州市,莆田市,廈門(mén)市,宣城市,亳州市,六安市,宿州市,黃山市,滁州市,安慶市,淮北市,馬鞍山市,蚌埠市,蕪湖市,合肥市,麗水市,舟山市,衢州市,金華市,湖州市,嘉興市,寧波市,宿遷市,鎮(zhèn)江市,鹽城市,連云港市,蘇州市,徐州市,南京市,綏化市,牡丹江市,佳木斯市,大慶市,鶴崗市,哈爾濱市,白城市,白山市,遼源市,吉林市,葫蘆島市,鐵嶺市,盤(pán)錦市,阜新市,錦州市,本溪市,鞍山市,沈陽(yáng)市,錫林郭勒盟,通遼市,烏海市,呂梁市,忻州市,晉中市,晉城市,陽(yáng)泉市,太原市,廊坊市,承德市,保定市,邯鄲市,唐山市,寧夏,甘肅省,西藏,貴州省,重慶市,廣西,湖南省,河南省,江西省,安徽省,江蘇省,黑龍江省,遼寧省,山西省,天津市,四平市,內(nèi)蒙古,吳忠市,果洛,西寧市,定西市,商洛市,西安市,那曲,黔南州,巴中市,樂(lè)山市,賀州市,防城港市,東莞市,河源市,常德市,衡陽(yáng)市,咸寧市,宜昌市,濮陽(yáng)市,新鄉(xiāng)市,洛陽(yáng)市,菏澤市,臨沂市,威海市,濟(jì)寧市,棗莊市,青島市,吉安市,鷹潭市,萍鄉(xiāng)市,南昌市,龍巖市,漳州市,三明市,福州市,池州市,巢湖市,阜陽(yáng)市,銅陵市,淮南市,臺(tái)州市,紹興市,溫州市,杭州市,泰州市,揚(yáng)州市,淮安市,南通市,常州市,無(wú)錫市,大興安嶺,黑河市,七臺(tái)河市,伊春市,雙鴨山市,雞西市,齊齊哈爾市,延邊,松原市,通化市,長(zhǎng)春市,朝陽(yáng)市,遼陽(yáng)市,營(yíng)口市,丹東市,撫順市,大連市,阿拉善盟,興安盟,烏蘭察布市,巴彥淖爾市,呼倫貝爾市,鄂爾多斯市,赤峰市,包頭市,呼和浩特市,臨汾市,運(yùn)城市,朔州市,長(zhǎng)治市,大同市,衡水市,滄州市,張家口市,邢臺(tái)市,秦皇島市,石家莊市,青海省,陜西省,云南省,四川省,海南省,廣東省,湖北省,山東省,福建省,浙江省,上海市,吉林省,河北省,北京市 主站蜘蛛池模板: 国产亚洲色婷婷久久精品99| 狠狠色香婷婷久久亚洲精品| 精品国产自在天天线2019| 免费毛片试看| 小黄文污到你湿| 做你的爱人BD日本| 国产AV亚洲精品久久久久| 久久精品熟一区二区三区| 日日噜噜夜夜爽爽| 伊人角狠狠狠狠| 国产3级在线观看| 恋夜直播午夜秀场最新| 乌克兰成人性色生活片| 2020亚洲色噜噜狠狠网站| 国产免费内射又粗又爽密桃视频| 91福利国产在线观看网站| 国产AV99激情久久无码天堂| 巨黄的肉辣文np| 亚洲国产AV精品一区二区蜜芽| 99热久久这里只有精品| 黑色丝袜美腿美女被躁翻了| 日本无修肉动漫在线观看| 中文在线无码高潮潮喷在线| 国产午夜人做人免费视频中文| 女性露出奶头流出精子| 亚洲幼女网| 国产精品国产三级国产专区53| 国产午夜在线精品三级a午夜电影| 男人团apk| 亚洲一区二区免费看| 国产成人在线播放视频| 内射白嫩少妇超碰| 伊人久久综合谁合综合久久| 国产伦精品一区二区三区免费观看| 欧美另类与牲交ZOZOZO| 又粗又大又爽又黄的免费视频| 国产精品爽爽久久久久久蜜桃| 秋霞电影院兔费理论观频84mb| 100国产精品人妻无码| 精品免费久久久久久影院| 小伙无套内射老女人|