标签:adcChannelConfigStruct DEMO RT1052 采集 OLED BASE ADC 数据 BOARD
在开发板的例程中,提供了A/D数据采集的程序,使用时可调节板上的电位器来调节电压值来改变采集结果,通过串口调试工具可观察其采样值如图1所示。 <ignore_js_op> 图1 数据采集效果利用前面所介绍的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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。