今天拿beep程序练手,主要学习linux driver的开发流程和内核编程相关的重要接口。 弄完之后就要写uart驱动了。 参考书籍:《华清远见linux驱动开发详解》 开发板:tq2440 下面是tq2440的蜂鸣器电路的电路图: 核心板: 可知,通过对TOUT0/GPB0进行编程可控制蜂鸣器 而对于s3c2440的gpio来说,只需要设置config和data寄存器即可。
#include"bsp_beep.h"/*初始化蜂鸣器IO*/voidbeep_init(void){/*IO复用,复用为GPIO5_IO01*/IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0);/*配置IO属性*/IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0x10B0);/*初始化设置为输出*/GPIO5->GDIR |= (1<<1);/*...
//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);} void GPIO_INIT(void){ GPIO_DeInit(GPIOA);GP...
编写GPIO 设置代码如下: // 设置 SNVS_TAMPER1 复用为GPIO5_IO01IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0);// 设置电气属性IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0x10b0); 设置GPIO 输出 : 在这里插入图片描述 代码如下: // GPIO 初始化GPIO5->GDIR|=(1...
编写GPIO 设置代码如下: // 设置 SNVS_TAMPER1 复用为GPIO5_IO01 IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01, 0); // 设置电气属性 IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01, 0x10b0); 1. 2. 3. 4. ...
BEEP_Config(BEEP_FREQUENCY_2KHZ, DISABLE);} int main(void) { Set_Beep_OptionByte();while (1...
CLK_BEEPClockConfig(CLK_BEEPCLKSource_LSE);//配置 BEEP 的时钟源为 LSE while (1){ if( GPIO_READ(GPIOB,GPIO_Pin_0)==0){ switch(state){ //状态机,选择功能。case 1:BEEP_Init(BEEP_Frequency_1KHz);//1KHZ 方波驱动BEPP BEEP_Cmd(ENABLE);//使能输出 发声 LED1_1(); //LED ...
IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0x10B0); /*初始化设置为输出*/ GPIO5->GDIR |= (1 << 1); /*输出高带你平,关闭蜂鸣器*/ GPIO5->DR |= (1 << 1); } /*蜂鸣器控制函数*/ void beep_switch(int status) ...
今天拿beep程序练手,主要学习linuxdriver的开发流程和内核编程相关的重要接口。 弄完之后就要写uart驱动了。 参考书籍:《华清远见linux驱动开发详解》 开发板:tq2440 下面是tq2440的蜂鸣器电路的电路图: 核心板: 可知,通过对TOUT0/GPB0进行编程可控制蜂鸣器 而对于s3c2440的gpio来说,只需要设置config和data寄存器即可。
包含一个config.h的头文件,里面主要是定义了数据类型的时钟频率等。 void DelayNS (uint32 dly) { uint32 i; for ( ; dly>0; dly--) for (i=0; i<50000; i ); } 写了一个延时函数。 主函数如下: int main (void) { PINSEL0 = 0x00000000; // 设置管脚连接GPIO ...