资源简介
研究生生期间,在导师公司实习做的基于stm32单片机的一个usb声卡程序,中间调试会出现杂音,期间花了将近两个月解决这个问题,最后对频率做了裁剪。希望对广大战友有所帮助,谢谢
代码片段和文件信息
/*
*********************************************************************************************************
*
* 模块名称 : 按键驱动模块
* 文件名称 : bsp_button.c
* 版 本 : V2.0
* 说 明 : 实现按键的检测,具有软件滤波机制,可以检测如下事件:
* (1) 按键按下
* (2) 按键弹起
* (3) 长按键
* (4) 长按时自动连发
* (5) 组合键
*
* 修改记录 :
* 版本号 日期 作者 说明
* v0.1 2009-12-27 armfly 创建该文件,ST固件库版本为V3.1.2
* v1.0 2011-01-11 armfly ST固件库升级到V3.4.0版本。
* v2.0 2011-10-16 armfly ST固件库升级到V3.5.0版本。
*
* Copyright (C) 2010-2011 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/
#include “stm32f10x.h“
#include
#include “bsp_button.h“
static BUTTON_T s_BtnUser; /* USER 键 */
static BUTTON_T s_BtnTamper; /* TAMPER 键 */
static BUTTON_T s_BtnWakeUp; /* WAKEUP 键 */
static BUTTON_T s_BtnUp; /* 摇杆UP键 */
static BUTTON_T s_BtnDown; /* 摇杆DOWN键 */
static BUTTON_T s_BtnLeft; /* 摇杆LEFT键 */
static BUTTON_T s_BtnRight; /* 摇杆RIGHT键 */
static BUTTON_T s_BtnOk; /* 摇杆OK键 */
static BUTTON_T s_BtnUserTamper;/* 组合键,USER和TAMPER键 */
static KEY_FIFO_T s_Key; /* 按键FIFO变量结构体 */
static void bsp_InitButtonVar(void);
static void bsp_InitButtonHard(void);
static void bsp_DetectButton(BUTTON_T *_pBtn);
/*
安富莱STM32F103ZE-EK 按键口线分配:
USER键 : PG8 (低电平表示按下)
TAMPEER键 : PC13 (低电平表示按下)
WKUP键 : PA0 (!!!高电平表示按下)
摇杆UP键 : PG15 (低电平表示按下)
摇杆DOWN键 : PD3 (低电平表示按下)
摇杆LEFT键 : PG14 (低电平表示按下)
摇杆RIGHT键: PG13 (低电平表示按下)
摇杆OK键 : PG7 (低电平表示按下)
定义函数判断按键是否按下,返回值1 表示按下,0表示未按下
*/
static uint8_t IsKeyDownUser(void) {if (GPIO_ReadInputDataBit(GPIOG GPIO_Pin_8) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownTamper(void) {if (GPIO_ReadInputDataBit(GPIOC GPIO_Pin_13) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownWakeUp(void) {if (GPIO_ReadInputDataBit(GPIOA GPIO_Pin_0) == Bit_SET) return 1; return 0;}
static uint8_t IsKeyDownUp(void) {if (GPIO_ReadInputDataBit(GPIOG GPIO_Pin_15) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownDown(void) {if (GPIO_ReadInputDataBit(GPIOD GPIO_Pin_3) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownLeft(void) {if (GPIO_ReadInputDataBit(GPIOG GPIO_Pin_14) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownRight(void) {if (GPIO_ReadInputDataBit(GPIOG GPIO_Pin_13) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownOk(void) {if (GPIO_ReadInputDataBit(GPIOG GPIO_Pin_7) == Bit_SET) return 0; return 1;}
static uint8_t IsKeyDownUserTamper(void) {if (IsKeyDownUser() && IsKeyDownTamper()) return 1; return 0;} /* 组合键 */
/*
*********************************************************************************************************
* 函 数 名: bsp_InitButton
* 功能说明: 初始化按键
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void bsp_InitButton(void)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16768 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_button.c
文件 2806 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_button.h
文件 8465 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_i2c_gpio.c
文件 917 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_i2c_gpio.h
文件 5376 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_led.c
文件 801 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_led.h
文件 1960 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_printf.c
文件 4164 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_sram.c
文件 753 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_sram.h
文件 39501 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_tft_lcd.c
文件 3256 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_tft_lcd.h
文件 5951 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_timer.c
文件 962 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_timer.h
文件 3162 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_usart.c
文件 508 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\bsp\bsp_usart.h
文件 17273 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\CORE\core_cm3.c
文件 85714 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\CORE\core_cm3.h
文件 15503 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\CORE\startup_stm32f10x_hd.s
文件 12765 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\CORE\startup_stm32f10x_md.s
文件 21841 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\fonts\asc16.c
文件 739 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\fonts\fonts.h
文件 9461 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\fonts\hz16.c
文件 188 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\fonts\说明.txt
文件 1234 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\AUDIOSEL\audiosel.c
文件 918 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\AUDIOSEL\audiosel.h
文件 1813 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\KEY\key.c
文件 1114 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\KEY\key.h
文件 16156 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\LCD\font.h
文件 50109 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\LCD\lcd.c
文件 8640 2015-04-29 18:19 USB声卡实验WM8978(16位改动)\HARDWARE\LCD\lcd.h
............此处省略261个文件信息
相关资源
- USBCAN_E_U_drive,ZLG,周立功 CAN驱动
- usb转232串口驱动,08年老版本。带修复
- linux那些事儿之我是usb(第2版)文字
- 联想usb驱动,联想插鼠标没有反应
- libusb 写的发送、接受方法
- 联想B470 安装黑苹果的网卡、声卡、电
- 山寨四路视频采集卡/EasyCap usb 2 DVR
- stm32f103RCT6-USB->UART
- HSM USB Serial Driver ver 3.1.4
- UVCUSB Video Class规范
- rtl8188eu_USB_linux.tar.gz
- USB视频采集卡驱动
- win10 USB转串口驱动 PL2303
- USB Type-C™ and Power Delivery DisplayPort A
- 各种USB转USART驱动
- USB摄像头通过v4l2技术采集、储存视频
- stm32f103usb游戏手柄项目 可用于usb键盘
- USB转232串口驱动程序(usb2.0-serial)
- 单USB双目摄像头拍摄程序
- K8飞刀20150412BadUSB专版[K.8].rar
- HUB 3.0 UPD720210瑞萨方案技术资料
- 集成声卡搭载机架专用 - ASIO驱动万能
- WinUSB Drivers x64、x86
- USBCAN-2E-U驱动 for win10
- USB-PPI编程电缆驱动
- usb t0 rs232
- PL2303USB转串口驱动
- 蓝牙 HCI 驱动通过 USB 总线
- USB-Serial Controller D驱动
- stm32f107 USB源码详解3USB_OTG_IP及其库的
评论
共有 条评论