金牌会员
 
- 积分
- 1068
- 金钱
- 1068
- 注册时间
- 2012-6-18
- 在线时间
- 158 小时
|
发表于 2017-2-14 14:45:45
|
显示全部楼层
[mw_shl_code=applescript,true]/* DMA外设初始化配置 */
DMA_ADC_Handler.Instance = DMA2_Stream0; //数据流选择
DMA_ADC_Handler.Init.Channel = DMA_CHANNEL_0; //通道选择
DMA_ADC_Handler.Init.Direction = DMA_PERIPH_TO_MEMORY;//外设到存储器
DMA_ADC_Handler.Init.PeriphInc = DMA_PINC_DISABLE; //外设地址不增加
DMA_ADC_Handler.Init.MemInc = DMA_MINC_ENABLE; //存储器地址增加
DMA_ADC_Handler.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;//字节模式
DMA_ADC_Handler.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD;//数据半字节
DMA_ADC_Handler.Init.Mode = DMA_NORMAL;
DMA_ADC_Handler.Init.Priority = DMA_PRIORITY_HIGH;
DMA_ADC_Handler.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
HAL_DMA_Init(&DMA_ADC_Handler);
/* 连接DMA */
__HAL_LINKDMA(&ADC1_Handler,DMA_Handle,DMA_ADC_Handler);
//以上是dma 句柄设置
//adc 部分
void MX_ADC1_Init(void)
{
ADC_ChannelConfTypeDef sConfig;
// ADC功能配置
ADC1_Handler.Instance = ADC1;
ADC1_Handler.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; //4分频,ADCCLK=PCLK2/4=90/4=22.5MHZ
ADC1_Handler.Init.Resolution = ADC_RESOLUTION_12B; //12位模式
ADC1_Handler.Init.ScanConvMode = ENABLE; //扫描模式
ADC1_Handler.Init.ContinuousConvMode = ENABLE; //打开连续转换
ADC1_Handler.Init.DiscontinuousConvMode = DISABLE; //不连续采样模式
ADC1_Handler.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; //软件触发
ADC1_Handler.Init.ExternalTrigConv = ADC_SOFTWARE_START;//ADC_EXTERNALTRIGCONV_T1_CC1;
ADC1_Handler.Init.DataAlign = ADC_DATAALIGN_RIGHT; //右对齐
ADC1_Handler.Init.NbrOfConversion = ADC_NUMOFCHANNEL; //8个转换在规则序列中
ADC1_Handler.Init.DMAContinuousRequests = ENABLE; //打开DMA请求
ADC1_Handler.Init.EOCSelection = ADC_EOC_SEQ_CONV; //关闭EOC中断
if (HAL_ADC_Init(&ADC1_Handler) != HAL_OK){Error_Handler();}
// 配置采样通道 1
sConfig.Channel = ADC_CHANNEL_1;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_144CYCLES;
if (HAL_ADC_ConfigChannel(&ADC1_Handler, &sConfig) != HAL_OK){Error_Handler();}
// 配置采样通道 2
。。。。。。。。[/mw_shl_code]
|
|