当前位置: 首页 > news >正文

CH585_ADC SCAN快速采集

实现功能:

例如采集5通道ADC数据,BUF配置20,则实现channel0数据放在BUF[0],channel1=BUF[1]...channel0=BUF[5]...

可以实现快速采集数据。

注意:不需要使用中断。

代码:

volatile uint8_t i = 0;
volatile uint8_t PRINT_flag = 0;
#define	ADC_PBUFFER_LENGTH				20//(96*15)
__attribute__ ((aligned(4)))  uint16_t adc_buffer[ADC_PBUFFER_LENGTH] ;/* 注意当使用ADC扫描功能时,例程默认打印脚由PA14更改为PB7*/
#define ADC_SCAN_MODE_EXAM          1
#define ADC_SCAN_CH_NUM            5//14#define ADC_SCAN1_CH_IDX_1 (0)
#define ADC_SCAN1_CH_IDX_2 (4)
#define ADC_SCAN1_CH_IDX_3 (8)
#define ADC_SCAN1_CH_IDX_4 (12)
#define ADC_SCAN1_CH_IDX_5 (16)
#define ADC_SCAN1_CH_IDX_6 (20)
#define ADC_SCAN1_CH_IDX_7 (24)
#define ADC_SCAN1_CH_IDX_8 (28)
#define ADC_SCAN2_CH_IDX_9 (0)
#define ADC_SCAN2_CH_IDX_10 (4)
#define ADC_SCAN2_CH_IDX_11 (8)
#define ADC_SCAN2_CH_IDX_12 (12)
#define ADC_SCAN2_CH_IDX_13 (16)const uint32_t ADC_PIN[14] = {0x00000010,                                           // PA4,AIN00x00000020,                                           // PA5,AIN10x00001000,                                           // PA12,AIN20x00002000,                                           // PA13,AIN30x00004000,                                           // PA14,AIN40x00008000,                                           // PA15,AIN50x00000008,                                           // PA3,AIN60x00000004,                                           // PA2,AIN70x00000002,                                           // PA1,AIN80x00000001,                                           // PA0,AIN90x00000040,                                           // PA6,AIN100x00000080,                                           // PA7,AIN110x00000100,                                           // PA8,AIN120x00000200                                            // PA9,AIN13
};const uint8_t adc_ch_seq[14] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};#define  printLen  80
volatile uint16_t adcBuff[printLen];volatile uint8_t adclen;
volatile uint8_t DMA_end = 0;__HIGH_CODE
void adc_scan_test()
{    uint32_t temp = 0;GPIOA_ModeCfg(  ADC_PIN[adc_ch_seq[0]] |ADC_PIN[adc_ch_seq[1]] |ADC_PIN[adc_ch_seq[2]] |ADC_PIN[adc_ch_seq[3]] |ADC_PIN[adc_ch_seq[4]] |ADC_PIN[adc_ch_seq[5]] |ADC_PIN[adc_ch_seq[6]] |ADC_PIN[adc_ch_seq[7]] |ADC_PIN[adc_ch_seq[8]] |ADC_PIN[adc_ch_seq[9]] |ADC_PIN[adc_ch_seq[10]] |ADC_PIN[adc_ch_seq[11]] |ADC_PIN[adc_ch_seq[12]] |ADC_PIN[adc_ch_seq[13]],GPIO_ModeIN_Floating);ADC_ExtSingleChSampInit(SampleFreq_4_or_2, ADC_PGA_0);     //4M采样频率,0dB增益R8_ADC_CONVERT |= RB_ADC_SAMPLE_TIME;                      //7个采样周期ADC_ChannelCfg(adc_ch_seq[0]);temp = (adc_ch_seq[1] << ADC_SCAN1_CH_IDX_1) |(adc_ch_seq[2] << ADC_SCAN1_CH_IDX_2) |(adc_ch_seq[3] << ADC_SCAN1_CH_IDX_3) |(adc_ch_seq[4] << ADC_SCAN1_CH_IDX_4) |(adc_ch_seq[5] << ADC_SCAN1_CH_IDX_5) |(adc_ch_seq[6] << ADC_SCAN1_CH_IDX_6) |(adc_ch_seq[7] << ADC_SCAN1_CH_IDX_7) |(adc_ch_seq[8] << ADC_SCAN1_CH_IDX_8);R32_ADC_SCAN_CFG1 = temp;temp = 0;temp = (adc_ch_seq[9] << ADC_SCAN2_CH_IDX_9) |(adc_ch_seq[10] << ADC_SCAN2_CH_IDX_10) |(adc_ch_seq[11] << ADC_SCAN2_CH_IDX_11) |(adc_ch_seq[12] << ADC_SCAN2_CH_IDX_12) |(adc_ch_seq[13] << ADC_SCAN2_CH_IDX_13);ADC_AutoConverCycle(192);// temp |= RB_ADC_SCAN_SEL | ((ADC_SCAN_CH_NUM - 1) << 24);temp |= RB_ADC_SCAN_SEL | RB_ADC_IE_SCAN_END | ((ADC_SCAN_CH_NUM - 1) << 24);R32_ADC_SCAN_CFG2 = temp;ADC_DMACfg(ENABLE, (uint32_t)&adcBuff[0] , (uint32_t)&adcBuff[printLen] , ADC_Mode_LOOP);// PFIC_EnableIRQ(ADC_IRQn);ADC_StartAutoDMA();
}__HIGH_CODE
__attribute__((noinline))
void Main_Circulation()
{   while(1){TMOS_SystemProcess();if(PRINT_flag == 1){PRINT_flag = 0;for (i = 0; i < 10; i++){PRINT("%02d:%04d ",i, adcBuff[i]);adcBuff[i] = 0;}PRINT("\n");PRINT("\n");}}
}VOID TMR_TEST(){TMR0_TimerInit(FREQ_SYS / 10);         // 设置定时时间 100msTMR0_ITCfg(ENABLE, TMR0_3_IT_CYC_END); // 开启中断PFIC_EnableIRQ(TMR0_IRQn);
}int main(void)
{
#if(defined(DCDC_ENABLE)) && (DCDC_ENABLE == TRUE)PWR_DCDCCfg(ENABLE);
#endifHSECFG_Capacitance(HSECap_18p);SetSysClock(SYSCLK_FREQ);
#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);
#endif
#ifdef DEBUGGPIOB_SetBits(GPIO_Pin_7);GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);GPIOB_ModeCfg(GPIO_Pin_7, GPIO_ModeOut_PP_5mA);UART0_DefInit();UART0_BaudRateCfg(2000000);
#endifGPIOB_SetBits(GPIO_Pin_0|GPIO_Pin_1);GPIOB_ModeCfg(GPIO_Pin_0|GPIO_Pin_1, GPIO_ModeOut_PP_5mA);PRINT("%s\n", VER_LIB);CH58x_BLEInit();HAL_Init();GAPRole_PeripheralInit();Peripheral_Init();TMR_TEST();R32_PIN_IN_DIS |= RB_PAx_IN_DIS; // 关闭数字输入adc_scan_test();mDelaymS(100);Main_Circulation();
}
__INTERRUPT
__HIGH_CODE
void TMR0_IRQHandler(void) // TMR0 定时中断
{if(TMR0_GetITFlag(TMR0_3_IT_CYC_END)){TMR0_ClearITFlag(TMR0_3_IT_CYC_END); // 清除中断标志PRINT_flag = 1;}
}

 

http://www.jsqmd.com/news/365728/

相关文章:

  • 详细介绍:【Vue】01 Vue技术——Vue简介
  • 2026年青岛月嫂服务机构最新推荐榜:住家月嫂、白班月嫂、金牌月嫂、星级月嫂、月嫂上门、临时月嫂、月嫂陪护、聚焦企业服务品质与母婴护理竞争力深度剖析 - 海棠依旧大
  • 分析能信任的跨境贸易合规咨询,北京德和衡律所优势显著 - mypinpai
  • Android IPC主流方式
  • 聊聊deepseek搜索推荐广告投放更精准的公司有哪些 - 工业品牌热点
  • 实用指南:防火墙的相关知识点与iptables源地址转换实验
  • 如何为不同场景选充电桩?2026年充电桩品牌全面评测,直击效率与网络痛点 - 品牌推荐
  • 这个被马斯克「翻牌子」的 AI App,能硬控你一整个春节!
  • 香蜜湖一号、水榭花都、天御香山花园房产中介哪家更靠谱 - 工业推荐榜
  • IPTV 系统硬件设备有哪些?一文读懂酒店、医院 IPTV 系统架构
  • 淮南优质心理咨询室推荐:专业相伴,疗愈心灵 - 野榜数据排行
  • 充电桩哪个品牌更可靠?2026年充电桩品牌推荐与评价,解决安全隐忧与网络覆盖痛点 - 品牌推荐
  • 2026年天津直进式拉丝机源头厂家推荐,性价比高的有哪些 - 工业设备
  • 2026年UEM统一端点管理推荐:国产化适配趋势排名,涵盖政企与金融场景安全痛点 - 品牌推荐
  • 2026年充电桩品牌推荐:基于多场景实测评价,针对兼容性与效率痛点精准指南 - 品牌推荐
  • 第十三天
  • 2026年充电桩品牌推荐:多场景实测排名,解决安全与兼容性核心痛点 - 品牌推荐
  • 2026年充电桩品牌推荐:技术趋势与市场格局评测,涵盖超充与能源管理创新应用痛点 - 品牌推荐
  • 启动:仪式的邀请函——腊月二十四,为什么我们一边喊累,一边还非要大扫除?
  • 如何为不同场景选充电桩?2026年充电桩品牌全面评价与推荐,解决运维与效率低下难题 - 品牌推荐
  • 2026年充电桩品牌推荐:基于用户调研的口碑维度深度解析 - 品牌推荐
  • 26年充电桩品牌推荐:基于用户调研的口碑维度深度解析 - 品牌推荐
  • 2026年充电桩品牌终极评测(权威机构数据背书)| 企业采购与项目落地避坑全指南 - 品牌推荐
  • 国产光伏层压烧结炉温测试仪哪家好?专业推荐 - 品牌推荐大师
  • 2026年充电桩品牌推荐:基于技术兼容性横向排名,针对多品牌管理痛点指南 - 品牌推荐
  • 如何为不同场景选充电桩?2026年充电桩品牌全面评测与推荐,直击效率与网络痛点 - 品牌推荐
  • 2026年充电桩品牌推荐:技术趋势与市场格局评测,涵盖日常与应急充电场景痛点 - 品牌推荐
  • 2026年充电桩品牌推荐:社区与公共场景深度评测,破解安全与运维核心痛点并附排名 - 品牌推荐
  • 2026年充电桩品牌推荐榜单:技术安全与生态协同双维度评估的行业洞察 - 品牌推荐
  • 2026年充电桩品牌推荐:社区与公共场景深度评价,解决安全与兼容核心痛点并附排名 - 品牌推荐