#include "fdc2214.h"
extern I2C_HandleTypeDef hi2c2;
uint8_t FDC2214_Init(void)
{
uint8_t i = 0;
uint8_t cof[2];
volatile uint16_t check[2];
cof[0] = 0xFF;
cof[1] = 0xFF;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, RCOUNT_CH0, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0xFF;
cof[1] = 0xFF;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, RCOUNT_CH1, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0xFF;
cof[1] = 0xFF;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, RCOUNT_CH2, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0xFF;
cof[1] = 0xFF;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, RCOUNT_CH3, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x00;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, OFFSET_CH0, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x00;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, OFFSET_CH1, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x00;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, OFFSET_CH2, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x00;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, OFFSET_CH3, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x04;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, SETTLECOUNT_CH0, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x04;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, SETTLECOUNT_CH1, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x04;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, SETTLECOUNT_CH2, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x04;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, SETTLECOUNT_CH3, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x10;
cof[1] = 0x01;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, CLOCK_DIVIDERS_C_CH0, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x10;
cof[1] = 0x01;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, CLOCK_DIVIDERS_C_CH1, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x10;
cof[1] = 0x01;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, CLOCK_DIVIDERS_C_CH2, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x10;
cof[1] = 0x01;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, CLOCK_DIVIDERS_C_CH3, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x00;
cof[1] = 0x01;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, ERROR_CONFIG, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x1e;
cof[1] = 0x01;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, CONFIG, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0xC2;
cof[1] = 0x0C;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, MUX_CONFIG, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x00;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, RESET_DEV, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x8c;
cof[1] = 0x40;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, DRIVE_CURRENT_CH0, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x8c;
cof[1] = 0x40;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, DRIVE_CURRENT_CH1, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x88;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, DRIVE_CURRENT_CH2, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
cof[0] = 0x88;
cof[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c2, FDC2214, DRIVE_CURRENT_CH3, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
HAL_I2C_Mem_Read(&hi2c2, FDC2214, MANUFACTURER_ID, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
check[0] = cof[1] | cof[0] << 8;
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DEVICE_ID, I2C_MEMADD_SIZE_8BIT, cof, 2, 100);
for (i = 0; i < 20; i++)
;
check[1] = cof[1] | cof[0] << 8;
if ((check[0] == MANUFACTURER_ID_val) && (check[1] == DEVICE_ID_val))
return 0;
else
return 1;
}
uint32_t FDC2214_GetCapacitanceData(uint8_t channel)
{
volatile uint32_t data;
uint8_t i = 0;
uint8_t pdata[4];
switch (channel)
{
case 0:
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_MSB_CH0, I2C_MEMADD_SIZE_8BIT, pdata, 2, 100);
for (i = 0; i < 20; i++)
;
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_LSB_CH0, I2C_MEMADD_SIZE_8BIT, pdata + 2, 2, 100);
for (i = 0; i < 20; i++)
;
data = ((pdata[0] << 24 | pdata[1] << 16 | pdata[2] << 8 | pdata[3]) & 0x0fffffff);
return data;
case 1:
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_MSB_CH1, I2C_MEMADD_SIZE_8BIT, pdata, 2, 100);
for (i = 0; i < 20; i++)
;
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_LSB_CH1, I2C_MEMADD_SIZE_8BIT, pdata + 2, 2, 100);
for (i = 0; i < 20; i++)
;
data = ((pdata[0] << 24 | pdata[1] << 16 | pdata[2] << 8 | pdata[3]) & 0x0fffffff);
return data;
case 2:
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_MSB_CH2, I2C_MEMADD_SIZE_8BIT, pdata, 2, 100);
for (i = 0; i < 20; i++)
;
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_LSB_CH2, I2C_MEMADD_SIZE_8BIT, pdata + 2, 2, 100);
for (i = 0; i < 20; i++)
;
data = ((pdata[0] << 24 | pdata[1] << 16 | pdata[2] << 8 | pdata[3]) & 0x0fffffff);
return data;
case 3:
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_MSB_CH3, I2C_MEMADD_SIZE_8BIT, pdata, 2, 100);
for (i = 0; i < 20; i++)
;
HAL_I2C_Mem_Read(&hi2c2, FDC2214, DATA_LSB_CH3, I2C_MEMADD_SIZE_8BIT, pdata + 2, 2, 100);
for (i = 0; i < 20; i++)
;
data = ((pdata[0] << 24 | pdata[1] << 16 | pdata[2] << 8 | pdata[3]) & 0x0fffffff);
return data;
default:
return 0;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip 【1】项目代码完整且功能都经验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 【特别强调】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为因为名字后再运行!有问题私信沟通,祝顺利! 基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip基于HAL库开发的FDC2214驱动程序C源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于HAL库开发的FDC2214驱动程序C源码.zip (2个子文件)
Drivers
fdc2214.c 6KB
fdc2214.h 1KB
共 2 条
- 1
资源评论
resnetᅟᅠ
- 粉丝: 3727
- 资源: 4140
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功