RT1052 A/D数据采集
作者:互联网
在开发板的例程中,提供了A/D数据采集的程序,使用时可调节板上的电位器来调节电压值来改变采集结果,通过串口调试工具可观察其采样值如图1所示。
<ignore_js_op>
图1 数据采集效果
利用前面所介绍的OLED屏显示方法与A/D采集相结合,可达到图2所示的直观显示效果。 <ignore_js_op> 图2 ADC 数据采集
实现图示效果的主程序如下:
在此基础上若添加相应的数值变换,则可达到一个数字电压表的效果。
利用前面所介绍的OLED屏显示方法与A/D采集相结合,可达到图2所示的直观显示效果。 <ignore_js_op> 图2 ADC 数据采集
实现图示效果的主程序如下:
- int main(void)
- {
- adc_config_t adcConfigStrcut;
- adc_channel_config_t adcChannelConfigStruct;
- BOARD_ConfigMPU();
- BOARD_InitPins();
- BOARD_BootClockRUN();
- BOARD_InitDebugConsole();
- PRINTF("\r\nADC polling Example.\r\n");
- OLED_Init();
- OLED_Clear();
- OLED_ShowString(8,0,"OK1052-C");
- OLED_ShowString(8,2,"ADC TEST");
- OLED_ShowString(8,4,"ADC Value:");
- ADC_GetDefaultConfig(&adcConfigStrcut);
- ADC_Init(DEMO_ADC_BASE, &adcConfigStrcut);
- #if !(defined(FSL_FEATURE_ADC_SUPPORT_HARDWARE_TRIGGER_REMOVE) && FSL_FEATURE_ADC_SUPPORT_HARDWARE_TRIGGER_REMOVE)
- ADC_EnableHardwareTrigger(DEMO_ADC_BASE, false);
- #endif
- /* Do auto hardware calibration. */
- if (kStatus_Success == ADC_DoAutoCalibration(DEMO_ADC_BASE))
- {
- PRINTF("ADC_DoAntoCalibration() Done.\r\n");
- }
- else
- {
- PRINTF("ADC_DoAutoCalibration() Failed.\r\n");
- }
- /* Configure the user channel and interrupt. */
- adcChannelConfigStruct.channelNumber = DEMO_ADC_USER_CHANNEL;
- adcChannelConfigStruct.enableInterruptOnConversionCompleted = false;
- while (1)
- {
- ADC_SetChannelConfig(DEMO_ADC_BASE, DEMO_ADC_CHANNEL_GROUP, &adcChannelConfigStruct);
- while (0U == ADC_GetChannelStatusFlags(DEMO_ADC_BASE, DEMO_ADC_CHANNEL_GROUP))
- {
- }
- OLED_ShowNum(20,6,ADC_GetChannelConversionValue(DEMO_ADC_BASE, DEMO_ADC_CHANNEL_GROUP),4,16);
- delay_ms(500);
- }
- }
在此基础上若添加相应的数值变换,则可达到一个数字电压表的效果。
标签:adcChannelConfigStruct,DEMO,RT1052,采集,OLED,BASE,ADC,数据,BOARD 来源: https://www.cnblogs.com/zhugeanran/p/16379943.html