打印
[PSOC™]

【英飞凌PSOC 4000T DIY】+基于CAPSENSETuner的液位检测实验

[复制链接]
100|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuyu40|  楼主 | 2025-4-26 18:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【英飞凌PSOC 4000T DIY】+基于CAPSENSETuner的液位检测实验
首先通过链接: HYPERLINK "https://www.infineon.com/cms/en/product/microcontroller/32-bit-psoc-arm-cortex-microcontroller/psoc-4-32-bit-arm-cortex-m0-mcu/psoc-4000-entry-level/psoc-4000t/"
找到ModusToolbox™ ,该软件是支持 Infineon 器件的开发工具和嵌入式资源的集合。ModusToolbox™ 工具包包括桌面应用程序,支持创建新的嵌入式项目、管理软件资源、配置设备外设和中间件,以及用于编译、编程和调试的多个 IDE 选项。支持Windows、Linux和MacOS。这些 ModusToolbox™ 应用程序利用了大量 GitHub 托管的存储库,其中包括来自 Infineon 及其合作伙伴的代码示例、板级支持包和中间件。中间件库包括 CAPSENSE™ HMI、连接性、机器学习、图形、安全性等。要注意的是这个软件只能在win10或者以上系统运行,某些低版本插件还要升级才能完成全部功能测试;如图所示打开软件安装其他调试软件。

打开软件Eclipse IDE for ModusToolbox™ 3.4,新建工程,选择合适芯片,如图:

在next的对话框中选择合适传感器:

选择液位传感器之后生成代码,编译之后生成代码下载调试,如果需要在电脑端观察液位波形图,可以打开CAPSENSE Tuner7.10,这里要注意这个版本需要自动升级,不然不会出现I2C接口,没办法接收数据。所以重新安装了部分软件,将ModusToolbox™Toolspackage3.40版本升级为3.50版本,再打开工程依次进行设置:

硬件接线如图,打开CAPSENSETuner8.0软件,点击连接按键,然后观察水位波形;

代码解读:
int main(void)
{cy_rslt_t result;
/* 初始化设备和外设 */
    result = cybsp_init();
/* 芯片设置失败停止执行 */
    if (result != CY_RSLT_SUCCESS)
    { CY_ASSERT(CY_ASSERT_FAILED); }
    /* 使能全局中断 */
    __enable_irq();
    /* 初始化EZI2C使用I2C将传感器数据传输到芯片 */
    initialize_capsense_tuner();
    /* 初始化 MSC CAPSENSE和中断 */
    initialize_capsense();
    for (;;)
    {uint32_t level_w_FR, level_wo_FR;
        /* 扫描转化液位传感器看门狗 */
Cy_CapSense_ScanWidget(CY_CAPSENSE_LIQUIDLEVEL0_WDGT_ID, &cy_capsense_context);
        /*等待转换结束 */
        while(Cy_CapSense_IsBusy(&cy_capsense_context)) {}
        /* Scan the Foam Rejection Widget */
        Cy_CapSense_ScanWidget(CY_CAPSENSE_LIQUIDLEVEL0_FR_WDGT_ID, &cy_capsense_context);
        /* Wait until the scan is finished */
        while(Cy_CapSense_IsBusy(&cy_capsense_context)) {}
        /* Process all th widgets */
        Cy_CapSense_ProcessAllWidgets(&cy_capsense_context);
        /* 将数据传到 the Tuner 界面*/
        Cy_CapSense_RunTuner(&cy_capsense_context);
        /* store the liquid level before and after foam rejection */
        level_wo_FR = CY_CAPSENSE_LIQUIDLEVEL0_PTRPOSITION_VALUE->x;
        level_w_FR = CY_CAPSENSE_LIQUIDLEVEL0_FR_PTRPOSITION_VALUE->x;
        /* keep the compiler happy */
        (void)level_wo_FR;
        (void)level_w_FR;
    }
}

使用特权

评论回复
沙发
wuyu40|  楼主 | 2025-4-26 18:52 | 只看该作者
还要注意开发板上SW要拨到I2C

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

22

帖子

0

粉丝