|
前言 本文分享adc的测试,并增加对应的shell命令方便测试 。 配置如下参考电压默认短接来自于3.3V 使用引脚P000及AIN0测试 配置引脚 添加adc组件 配置adc参数 Analog->ADC 使能对应通道 产生工程 代码Adc.c/h #include #include "hal_data.h" voidadc_init(void){ fsp_err_t err; err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg); err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg); assert(FSP_SUCCESS == err); } //ADC转换完成标志位 volatile bool scan_complete_flag = false; void adc_callback(adc_callback_args_t * p_args) { FSP_PARAMETER_NOT_USED(p_args); scan_complete_flag = true; } uint16_tadc_get(void){ uint16_t adc_data; (void)R_ADC_ScanStart(&g_adc0_ctrl); while (!scan_complete_flag) //等待转换完成标志 { ; } scan_complete_flag = false; //重新清除标志位 /* 读取通道0数据 */ R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data); return adc_data; } #ifndef ADC_H #define ADC_H #ifdef __cplusplus extern "C" { #endif #include void adc_init(void); uint16_t adc_get(void); #ifdef __cplusplus } #endif #endif 测试shell增加测试命令 #include ”adc.h” static void adcfunc(uint8_t* param); { (uint8_t*)"adc", adcfunc, (uint8_t*)"adc"}, static void adcfunc(uint8_t* param) { xprintf("adc:%d\r\n",adc_get()); } 浮空看到测量值随机754-1057 接3V3测量值为4095 接GND测量值为0
|