完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我正在尝试读取引脚 #24 (P2.4) 的模拟电压电平,但我得出了错误的值。 这是我的代码。 gpio_hsiom_set_config(GPIO_PORT_2_PIN_4, HSIOM_MODE_AMUXB, GPIO_DM_HIZ_ANALOG, 0);CyDelayUs(200);pd_adc_calibrate(TYPEC_PORT_0_IDX, PD_ADC_ID_1);uint8_t level = pd_adc_sample(TYPEC_PORT_0_IDX, PD_ADC_ID_1, PD_ADC_INPUT_AMUX_B);hsiom_set_config(GPIO_PORT_2_PIN_4, HSIOM_MODE_GPIO); 来自 pd_adc_sample () 的 ADC 返回值非常低,只有 2-5。 引脚上的实际电压为 1.1V。 如果引脚中的电压为 0V,则返回值为 0,因此似乎存在连接。 但是,如果我改用 HSIOM_MODE_AMUXA PD_ADC_INPUT_AMUX_A,我确实会得到预期的值(约 85),但随后 PD 会立即引发应用程序事件 APP_EVT_RP_CHANGE 和 APP_EVT_VBUS_OVP_FAULT。 我认为这是因为端口使用 AMUXA 来感应 VBUS。 如何使用 MUXB 正确读取引脚电压电平? |
|
相关推荐
1个回答
|
|
首先,请确保在读取引脚电压电平之前已正确配置了引脚和ADC。
根据您提供的代码和描述,我注意到您在配置HSIOM模式时使用了HSIOM_MODE_AMUXB,并在读取ADC值之前进行了模拟校准。 下面是一些可能导致您得到错误数值的原因: 1. 引脚配置:确保您在读取引脚之前正确配置了引脚。您可以使用gpio_hsiom_set_config()函数或其他相关函数来配置引脚模式。确保将引脚配置为模拟输入模式(ANALOG IN)。 2. ADC配置:在读取ADC之前,请确保已正确配置了ADC通道和输入引脚。确保将ADC通道配置为使用正确的输入引脚(AMUX B)。您可以使用pd_adc_calibrate()函数对ADC进行校准。 3. 延迟:您在配置引脚后添加了200微秒的延迟。这可能是为了等待引脚配置生效。请确保延迟足够长,以确保引脚配置的生效。 4. 引脚电压检查:如果确保了上述配置正确,但仍然得到错误的ADC值,可以检查一下引脚的实际电压。可以使用示波器或万用表来测量引脚上的电压,以验证ADC值是否与实际电压匹配。 如果您仍然无法解决问题,请提供更多关于您的硬件和软件配置的详细信息,以便我们可以更好地帮助您解决问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-6-29 05:26 , Processed in 0.559461 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191