[AURIX™]【英飞凌CYW20829测评】IIC手势识别 + NCT ADC采集

进阶任务实现

一、ADC实验
1、确认ADC引脚
 


查看开发板的丝印,可以看见模拟接口,即ADC接口是A0-A3,对应芯片IO是P3-4 到P3-7,接下查看原理图进一步确认。
 


查看原理图后,发现A0还接了一个热敏电阻“THERMISTOR”,直接搜索“THERMISTOR”,可以看见开发板上已有相应的电路。
 


如上图,开发板上的热敏电阻,需要将J14连接后才接到引脚P3-4上,
 


开发板上,J14已连接。


2、软件配置
由于ADC没有参考的例程,所以需要从头写。

初始化函数

cyhal_adc_init(&adc_obj, CYBSP_THERMISTOR, NULL);
作用:
初始化ADC采样引脚

参数:
1、类型为cyhal_adc_t 的变量
2、ADC采样的引脚
3、使用默认的时钟,填NULL即可


cyhal_adc_channel_init_diff
作用:
配置ADC引脚与采样方式

参数
1、类型为cyhal_adc_channel_t 的变量
2、类型为cyhal_adc_t 的变量
3、ADC采样的引脚
4、如果不是差分对采样,就填CYHAL_ADC_VNEG
5、类型为cyhal_adc_channel_config_t 的变量,数值如下:

复制
<p>const  cyhal_adc_channel_config_t channel_config = {</p><p>.enable_averaging = false,</p><p>.min_acquisition_ns = 220,</p><p>.enabled = true };</p>


cyhal_adc_read
作用:
读取ADC值,返回值就是adc

参数
1、类型为cyhal_adc_channel_t 的变量

完整代码

复制


cyhal_adc_t         adc_obj;

cyhal_adc_channel_t adc_chan_0_obj;

int32_t adc_out;



cyhal_adc_init(&adc_obj, CYBSP_THERMISTOR, NULL);



const cyhal_adc_channel_config_t channel_config = {

                .enable_averaging = false,

                .min_acquisition_ns = 220,

                .enabled = true };



cyhal_adc_channel_init_diff(&adc_chan_0_obj, &adc_obj, CYBSP_THERMISTOR, CYHAL_ADC_VNEG,&channel_config);



for (;;) {



        adc_out = cyhal_adc_read(&adc_chan_0_obj);

        printf("NTC  Voltage %d\n\r",adc_out);



}





二、IIC初始化 与 驱动手势传感器

1、引脚确认
 


IIC引脚已引出,并且有外部上拉。
 


开发板上已经引出了一组IIC引脚,P4.0 P4.1。直接初始化即可。


2、软件配置
在HAL_I2C_Master的基础上,修改代码来驱动paj7620u2,一个IIC接口的手势传感器。

原例程中已完成IIC初始化的配置,不需要修改,只要按照我们的需求修改IIC读、写函数接口,就可以完成驱动传感器。下面就是API的对比与参数描述:

例程中原本接口:

复制
<p>cyhal_i2c_master_write</p><p>cyhal_i2c_master_read</p>


查阅API的说明,发现例程中IIC读写接口只支持,单个地址的读写,不能带寄存器地址,需要修改API.


修改后:

复制
<p>cyhal_i2c_master_mem_write</p><p>cyhal_i2c_master_mem_read</p>


以上的读写接口,支持设备地址、寄存器地址的API。

cyhal_i2c_master_mem_read
作用:
读取IIC多字节数据

输入参数:
1、类型为cyhal_i2c_t 的变量
2、设备地址
3、寄存器地址
4、寄存器地址长度(8位的是1字节)
5、读取数据返回值数组
6、读取长度
7、超时时间

cyhal_i2c_master_mem_write 的参数是一致的,就不赘述了。


2、测试实验
驱动写好后,接好设备,验证IIC初始化 与 发送数据API正常工作。

测试代码

复制
<p>#define I2C_SLAVE_ADDR          (0x73)</p><p>cyhal_i2c_master_mem_write(&mI2C, I2C_SLAVE_ADDR, add_, 1, 0x43, 1, 0x10);</p>



 


0X73是八位的地址,0xE6就是0X73<<1的数值,所以发送数据与填写的一致。往后就是驱动的移植,按照正常的流程替换API即可,我就不赘述了。

三、进阶实验效果
paj7620u2获取手势   加   ADC采集NTC实验效果:

---------------------
作者:dvacos
链接:https://bbs.21ic.com/icview-3387932-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值