This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

基于tm4c123g使用pwm来驱动无源蜂鸣器的问题



基于tm4c123g使用pwm来驱动无源蜂鸣器的问题

如下为通过示波器检测产生pwm波代码

怎样才能使蜂鸣器发声

 

 

 

/*pb6   mopwm0
 * pb4    m0pwm2
 *
 *无源蜂鸣器是靠方波驱动的,频率是1900-4000HZ 不等
 *
*/

 #include <stdint.h>
 #include <stdbool.h>
 #include "inc/hw_memmap.h"
 #include "inc/hw_types.h"
 #include "driverlib/sysctl.h"
 #include "driverlib/rom.h"
 #include "driverlib/gpio.h"
 #include "driverlib/pwm.h"
 #include "driverlib/fpu.h"
 #include "driverlib/pin_map.h"

int main (void)
 {
         //使能FPU
         FPUEnable();
         FPULazyStackingEnable();
         //设置系统时钟为80MHz
         SysCtlClockSet(SYSCTL_SYSDIV_2_5 |SYSCTL_USE_PLL|SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);

         //SysCtlClockSet(SYSCTL_OSC_INT30 |SYSCTL_XTAL_1MHZ);
         SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);//使能PWM0模块
         SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);//使能PWM0和PWM1输出所在GPIO
         GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_6);
//         GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_4);//配置PH0/PH1为PWM功能
         GPIOPinConfigure(GPIO_PB6_M0PWM0);    //#define GPIO_PB6_M0PWM0         0x00011804
         SysCtlPWMClockSet(SYSCTL_PWMDIV_1);

//         GPIOPinConfigure(GPIO_PB4_M0PWM2);    //#define GPIO_PB7_M0PWM1         0x00011C04
//         SysCtlPWMClockSet(SYSCTL_PWMDIV_1);     // PWM时钟配置:不分频
         //配置PWM发生器0:加减计数,不同步
         PWMGenConfigure(PWM0_BASE,PWM_GEN_0,PWM_GEN_MODE_UP_DOWN| PWM_GEN_MODE_NO_SYNC);
         //设置PWM发生器1的频率,时钟频率/PWM分频数/n,80M/1/800=100KHZ
         PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, 500);
         //设置PWM0/PWM1输出的脉冲宽度
         PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, 400);//50%占空比
         //   PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, 200);//25%占空比
         //使能PWM0和PWM1的输出
         PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT, true);
         //使能PWM发生器
         PWMGenEnable(PWM0_BASE, PWM_GEN_0);
         while(1);

 }