基于FDC2214的手势识别
1、本次题目来源于2018年全国电子设计大赛D题,要求实现对石头、剪刀、布以及数字12345的识别;同时在上述基础上实现对手势的学习。
2、硬件实现:
硬件主要采用STM32F103以及TI公司的FDC2214芯片,同时FDC2214芯片按照官方文档进行接线,其接线原理图如下:
其中CLKIN引脚为接地引脚;ADDR引脚需要外接上拉电阻;SD引脚需要外接下拉电阻;右侧为芯片外接测量数据输入端口。
同时SCL、SDA、VDD以及GND进行了接线处理,其具体接线如下:
实现对接线的VDD和GND之间的处理,实现和STM32f103之间的连接,实现对FDC2214芯片的供电和接地处理以及I2C通信的接口。
另外,对数据输入端子进行数据读入,加入LC稳定滤波,其接线原理如下:
3、软件实现,不多说,先贴上FDC2214配置代码:
#include "fdc2214.h"
#include "delay.h"
#include "led.h"
void FDC_IIC_Delay(void)
{
delay_us(2);
}
void FDC_GPIO_Init(void)
{
}
void FDC_IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);
}
void FDC_IIC_Start(void)
{
FDC_SDA_OUT();
FDC_IIC_SDA=1;
FDC_IIC_SCL=1;
FDC_IIC_Delay();
FDC_IIC_SDA=0;
FDC_IIC_Delay();
FDC_IIC_SCL=0;
}
void FDC_IIC_Stop(void)
{
FDC_SDA_OUT();
FDC_IIC_SCL=0;
FDC_IIC_SDA=0;
FDC_IIC_Delay();
FDC_IIC_SCL=1;
FDC_IIC_SDA=1;
FDC_IIC_Delay();
}
u8 FDC_IIC_Wait_Ack(void)
{
&nbs