金牌会员
 
- 积分
- 1068
- 金钱
- 1068
- 注册时间
- 2012-6-18
- 在线时间
- 158 小时
|
发表于 2017-1-6 19:19:11
|
显示全部楼层
看了你的程序,错误来源于ADC 和dma初始化上,adc 句柄设置中中断软件方式没有设置。dma 设置上你好好看看原子的历程。另外对于规则通道的dma 我的建议不要用一维数组,用二维数组比较好。既然地址增加二维数组直接保存更加方便。[mw_shl_code=cpp,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]
另外建议放弃标准库吧。很操心。hal库好用到极点。
|
|