第六章合集代碼1:數(shù)據(jù)采集和動(dòng)態(tài)圖展示

uint16_t AdcConvertedValue[100];//存儲(chǔ)采樣數(shù)據(jù)
uint8_t adcDmaOverFlag=0;//采樣是否結(jié)束的標(biāo)志位
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)AdcConvertedValue,100);//開啟采樣和DMA傳輸
extern uint8_t adcDmaOverFlag;//100個(gè)點(diǎn)是否采樣完成
adcDmaOverFlag=1;? //100個(gè)點(diǎn)采樣完成
#include <main.h>
extern uint16_t AdcConvertedValue[500];//存儲(chǔ)采樣數(shù)據(jù)
extern uint8_t adcDmaOverFlag;//采樣是否結(jié)束的標(biāo)志位
extern ADC_HandleTypeDef hadc1;
tickCounter++;
static uint16_t i;
float adFloat;
?
? ? if ((tickCounter%100 == 0)&&(adcDmaOverFlag==1))//判斷采樣是否結(jié)束
{
? ? for(i=0;i<100;i=i+1)? //顯示100個(gè)點(diǎn)
{
? adFloat=(float)AdcConvertedValue[i];//12位數(shù)字量0-4095
? graph.addDataPoint(adFloat);//在圖上顯示采樣點(diǎn)
}
? adcDmaOverFlag=0;//標(biāo)志位復(fù)位
? HAL_ADC_Start_DMA(&hadc1,(uint32_t*)AdcConvertedValue,100);//重新開始下一輪采集
?}