CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

COMP MSIO

COMP MSIO的示例工程实现了两个MSIO引脚外接电压值的比较。

COMP MSIO示例的源代码和工程文件位于SDK_Folder\projects\peripheral\comp\comp_msio_msio,其中工程文件在文件夹Keil_5下。

代码理解

示例工程流程图如图 43所示:

图 43 COMP MSIO示例工程流程图
  1. 配置COMP模块。
    g_comp_handle.init.input_source = COMP_INPUT_SRC_IO0;
    g_comp_handle.init.ref_source   = COMP_REF_SRC_IO1;
    g_comp_handle.init.ref_value    = 0;
    hal_comp_deinit(&g_comp_handle);
    hal_comp_init(&g_comp_handle);
    
    msio_config.pin = COMP_INPUT_PIN | COMP_VREF_PIN;
    msio_config.direction = MSIO_DIRECTION_INPUT;
    msio_config.pull = MSIO_PULLUP;
    msio_config.mode = MSIO_MODE_ANALOG;
    hal_msio_init(&msio_config);
    
    • input_source:比较器输入引脚选择,可选择:COMP_INPUT_SRC_IO0 ~ COMP_INPUT_SRC_IO4,对应引脚为MSIO0 – MSIO4。
    • ref_source:参考源选择,可选择:COMP_REF_SRC_IO0 ~ COMP_REF_SRC_VREF,对应引脚为 MSIO0 – MSIO4(外部参考),VBAT(电池),VREF(内部参考)。
    • ref_value:比较器参考输入电压值,此示例工程使用外部的物理COMP_REF_SRC_IO1作为输入,无法确定具体值,此处无需设置或者设置为默认值0。
    • 配置COMP_INPUT_PIN(MSIO 0),COMP_VREF_PIN(MSIO 1)为模拟输入引脚。
  2. 调用hal_comp_start()启用中断方式比较器,比较结果通过回调函数hal_comp_trigger_callback()返回,用户可在此函数中自定义可执行操作。代码如下:
    void hal_comp_trigger_callback(comp_handle_t *p_comp)
    {
        printf("Comp is triggered.\r\n");
    }
    
    hal_comp_start(&g_comp_handle);
    

测试验证

  1. 用GProgrammer下载comp_msio_msio.bin至开发板。
  2. 将开发板串口连接至PC端,打开并配置GRUart。
  3. 在GRUart的Receive Data窗口中将会显示比较器的比较结果。

扫描关注

打开微信,使用“扫一扫”即可关注。