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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc32g12k128單片機輸出PWM波例程

  [復制鏈接]
跳轉到指定樓層
樓主
ID:1039438 發表于 2022-9-18 08:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
今天在學習stc32g12k128單片機的PWM功能時感受到了它的強悍,它能同時輸出8路不同的PWM信號,并且除了使用8個IO口外不占用其它任何系統資源,比如定時器,中斷及MCU時間。為方便初學者認識這個功用的優點,我寫了一個輸出四路PWM信號的例程,展示一下這個功能的用法,例程可以直接使用,也可以方便的放進其它程序中做為一個函數調用,該例程經采用stc32g12k128芯片的核心板降龍棍和屠龍刀驗證通過,并使用示波器和脈沖采集測量方式檢驗證實。希望對初學stc32g12k128的朋友有所幫助。下面是程序主體部分,完整內容可下載附件獲得。
更新的程序中加入了頻率范圍向下擴展的語句
單片機源程序如下:
#include <STC32G.H>
#include "mcu_initial.h"
#define sysclock 11059200
#define down_freq 20 //頻率向下擴展比例。設置值不為0的正整數。也不要太大,以免溢出。
#define PWMA_freq 220        //PWMA輸出頻率,單位HZ
#define PWMB_freq 1000//        PWMB輸出頻率
#define duty1  0.1//cc1占空比(0.01~0.999)
#define duty3  0.2//cc3占空比
#define duty5  0.3//cc5占空比
#define duty6  0.4//cc6占空比
void mcu_initial(void)
{
unsigned long int za,zb,zc;//計算常數
        P1M1=0x00;
        P1M0=0x00;   //P1配置為準雙向
        P2M1=0x00;
        P2M0=0x00;   //P2配置為準雙向
        P3M1=0x00;
        P3M0=0x00;   //P3配置為準雙向                  
                P4M1=0x00;
        P4M0=0x00;   //P4配置為準雙向                  
P5M0 = 0x00;
P5M1 = 0x00;
  EAXFR = 1; //使能訪問 XFR
CKCON = 0x00; //設置外部數據總線速度為最快
WTST = 0x00; //設置程序代碼等待參數,
//賦值為 0 可將 CPU 執行程序的速度設置為最快
za=sysclock/PWMA_freq-1;//PWMA計數器周期預設值
        zb=sysclock/PWMB_freq-1;//PWMB計數器預設值
PWMB_PSCRL=down_freq-1;//更新加入的語句。配合向下擴展頻率定義語句
         PWMA_PS=0x00;//默認值,在P1.4輸出PWMA3,在P1.0輸出PWMA1
         PWMA_CCER1 = 0x00; //關閉通道cc1
        PWMA_CCER2 = 0x00; //關閉通道cc3

PWMA_CCMR1=0x60;//設置cc1為PWM模式1輸出
PWMA_CCMR3=0x60;//設置cc3為PWM模式1輸出
PWMA_CCER1 = 0x01; //使能cc1輸出
PWMA_CCER2 = 0x01; //使能cc3

PWMA_ARRH=za/256;//PWMA周期高位
PWMA_ARRL=za%256;//PWMA周期低位

zc=za*duty1;
PWMA_CCR1H=zc/256;//PWM1P占空比高位
PWMA_CCR1L=zc%256;//PWM1P占空比低

zc=za*duty3;
PWMA_CCR3H=zc/256;//PWM3P占空比高位
PWMA_CCR3L=zc%256;//PWM3P占空比低位

PWMB_PS=0x00;//選擇在P2.0輸出PWM5.P2.1輸出PWM6
PWMB_CCER1=0x00;//寫CCMRx前必須先清零,關閉通道
PWMB_CCMR1=0X60;//設置cc5為PWM模式1輸出
PWMB_CCMR2=0X60;//設置cc6為PWM模式1輸出
PWMB_CCER1=0x11;//使能cc5通道和cc6通道

PWMB_ARRH=zb/256;//設置周期
PWMB_ARRL =zb%256;

zc=zb*duty5;
PWMB_CCR5H=zc/256;//設置占空比
PWMB_CCR5L=zc%256;

zc=zb*duty6;
PWMB_CCR6H=zc/256;//設置占空比
PWMB_CCR6L=zc%256;

PWMA_ENO=0x11;//使能PWM1P和PWM3P
PWMB_ENO = 0x05; //使能 PWM5P和PWM6 端口輸出

PWMA_BKR = 0x80; //使能主輸出
PWMB_BRK = 0x80; //使能主輸出

PWMB_CR1 = 0x01; //開始計時
PWMA_CR1=0x01;//開始計時
        //HSPWMB_CFG=0x07;//開啟高速高級PWMA模式和中斷響應
        //USBCLK|=0xc0;//使能PLL時鐘倍頻,時鐘選擇24M

}

Keil5代碼下載: Keil代碼.7z (32.62 KB, 下載次數: 89)

評分

參與人數 2黑幣 +54 收起 理由
STC莊偉 + 4 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:262 發表于 2022-10-14 17:31 | 只看該作者
好東東 mcu_initial.h可以用您在其他工程里面的嗎?
回復

使用道具 舉報

板凳
ID:961114 發表于 2022-10-15 09:51 | 只看該作者
STC32G12K128系列PWM的強大需要花時間消化,需要測試官方的范例程序
回復

使用道具 舉報

地板
ID:1039438 發表于 2022-10-15 16:30 | 只看該作者
heicad 發表于 2022-10-14 17:31
好東東 mcu_initial.h可以用您在其他工程里面的嗎?

可以呀,只是注意其中的設置與程序中其它任務的設置不要沖突
回復

使用道具 舉報

5#
ID:1039438 發表于 2022-10-15 20:12 | 只看該作者
STC莊偉 發表于 2022-10-15 09:51
STC32G12K128系列PWM的強大需要花時間消化,需要測試官方的范例程序

我是初學者,目前只做了脈沖捕捉和頻率測量的驗證,DAC類還沒學到。
回復

使用道具 舉報

6#
ID:61207 發表于 2022-10-28 20:45 | 只看該作者
麗江春水 發表于 2022-10-15 20:12
我是初學者,目前只做了脈沖捕捉和頻率測量的驗證,DAC類還沒學到。

可否分享一下你的成果
回復

使用道具 舉報

7#
ID:1039438 發表于 2022-10-29 13:05 | 只看該作者
可以,能為大家做點事,很高興。謝謝。
回復

使用道具 舉報

8#
ID:998180 發表于 2022-11-19 16:16 | 只看該作者
正在學習STC32,多謝了
回復

使用道具 舉報

9#
ID:1039438 發表于 2022-11-19 18:50 | 只看該作者
lirenhain00 發表于 2022-11-19 16:16
正在學習STC32,多謝了

歡迎指點,希望多些交流。
回復

使用道具 舉報

10#
ID:159514 發表于 2022-11-23 16:51 | 只看該作者
有個問題想問一下,如果這個PWM工作的過程中產生了外部中斷,這個PWM會不會停?
回復

使用道具 舉報

11#
ID:1039438 發表于 2022-11-24 09:29 | 只看該作者
長橋臥波 發表于 2022-11-23 16:51
有個問題想問一下,如果這個PWM工作的過程中產生了外部中斷,這個PWM會不會停?

不會停,PWM是相對獨立的外設。
回復

使用道具 舉報

12#
ID:1048397 發表于 2022-11-24 11:05 | 只看該作者
謝謝樓主,好資料,51黑有你更精彩!!!
回復

使用道具 舉報

13#
ID:159514 發表于 2022-11-30 10:17 | 只看該作者
麗江春水 發表于 2022-11-24 09:29
不會停,PWM是相對獨立的外設。

那就好,以前15系列的就會停,非常讓人困擾。
回復

使用道具 舉報

14#
ID:1039438 發表于 2022-11-30 13:29 | 只看該作者
長橋臥波 發表于 2022-11-30 10:17
那就好,以前15系列的就會停,非常讓人困擾。

15系列不該停,你再看看程序上有什么語句會讓PWM停。
回復

使用道具 舉報

15#
ID:1099971 發表于 2023-11-16 16:53 | 只看該作者
STC莊偉 發表于 2022-10-15 09:51
STC32G12K128系列PWM的強大需要花時間消化,需要測試官方的范例程序

請問在哪可以下載呀?
回復

使用道具 舉報

16#
ID:1085085 發表于 2023-11-17 09:03 | 只看該作者
wangshengyuan 發表于 2023-11-16 16:53
請問在哪可以下載呀?

您好,可去他們官方STCAI下載
回復

使用道具 舉報

17#
ID:1078947 發表于 2023-11-18 19:17 | 只看該作者
優秀。。。。
回復

使用道具 舉報

18#
ID:884711 發表于 2024-5-6 21:37 | 只看該作者
路過學習,謝謝分享!
回復

使用道具 舉報

19#
ID:1012889 發表于 2024-6-1 03:19 | 只看該作者
路過學習,謝謝分享!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青国产 | 一级特黄色片 | 国产乡下妇女做爰视频 | 亚洲精品一二三 | 免费视频一区 | 成人黄色在线视频 | av大全在线观看 | 成人在线视频免费 | 看免费毛片 | 久久久久久久久国产精品 | 热久久中文字幕 | 日韩一级在线 | 精品一区二区三区四区五区 | 国产高潮在线观看 | 亚洲 欧美 综合 | 在线观看日韩视频 | 日本视频一区二区三区 | 狠狠做深爱婷婷久久综合一区 | 夜夜精品视频 | 日韩精品视频免费在线观看 | 成人免费看片在线观看 | 中文字幕一区二区三区在线观看 | 日韩a在线观看 | 日韩av不卡在线观看 | 日韩精品视频网站 | 欧美视频在线观看一区 | 国产免费网址 | 激情综合网五月 | 成人黄色录像 | av综合网站 | 青青草国产成人av片免费 | 国产精品1234| a视频在线 | 国产视频999 | 久久久久久99精品久久久 | 亚洲综合成人网 | 色哟哟av| 一区二区三区国产视频 | 97成人在线 | 日韩在线一区二区三区 | 日韩特级毛片 |