实验三个文档:
蜂鸣器驱动:
1.5KHZ-5KHZ之间,我们取5KHZ
也就是高低点平各100um,周期为200um的方波
LED1还是GPIO68管脚
蜂鸣器管脚GPIO6
蜂鸣器驱动:
beep.c
/** heep.c** Created on: 2024年8月4日* Author: Administrator*/#include<beep.h>void LED_Init(void)
{EALLOW;//关闭写保护SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // 开启GPIO时钟//LED1端口配置GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为通用GPIO功能GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出GpioCtrlRegs.GPCPUD.bit.GPIO68=0;//使能GPIO上拉电阻GpioDataRegs.GPCSET.bit.GPIO68=1;//设置GPIO输出高电平EDIS;//开启写保护
}void BEEP_Init(void)
{EALLOW;//关闭写保护SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // 开启GPIO时钟//LED1端口配置GpioCtrlRegs.GPAMUX1.bit.GPIO6=0;//设置为通用GPIO功能GpioCtrlRegs.GPADIR.bit.GPIO6=1;//设置GPIO方向为输出GpioCtrlRegs.GPAPUD.bit.GPIO6=0;//使能GPIO上拉电阻GpioDataRegs.GPCSET.bit.GPIO68=1;//设置GPIO输出高电平EDIS;//开启写保护
}
beep.h
/** beep.h** Created on: 2024年8月4日* Author: Administrator*/#ifndef BEEP_H_
#define BEEP_H_#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File#define LED1OFF (GpioDataRegs.GPCSET.bit.GPIO68=1)
#define LED1ON (GpioDataRegs.GPCCLEAR.bit.GPIO68=1)
#define LED1TOGGLE (GpioDataRegs.GPCTOGGLE.bit.GPIO68=1)#define BEEPOFF (GpioDataRegs.GPASET.bit.GPIO6=1)
#define BEEPON (GpioDataRegs.GPACLEAR.bit.GPIO6=1)
#define BEEPTOGGLE (GpioDataRegs.GPATOGGLE.bit.GPIO6=1)void BEEP_Init(void);
void LED_Init(void);#endif /* BEEP_H_ */
主函数:
main.c
/** main.c** Created on: 2018-3-21* Author: Administrator*/#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File#include<beep.h>/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{InitSysCtrl();//系统时钟初始化,默认已开启F28335所有外设时钟LED_Init();BEEP_Init();int i=0 ;while(1){i++;if(i==1000){i=0;LED1TOGGLE;}BEEPTOGGLE;//设置GPIO输出翻转信号DELAY_US(100);}}
实验视频如下:
TMA32F28335的蜂鸣器实验