[STM32F1] ADC+DMA问题

[复制链接]
1624|4
 楼主| lgq1542380129 发表于 2015-4-29 15:14 | 显示全部楼层 |阅读模式
本人用的是mdk4.7,在调试STM32F103ZET6的ADC+DMA程序时,采用ADC1通道10和11采集两路AD,存放在二维数组里面(__IO uint16_t ADC1_dma_getvalue[ADC1_get_num][2] = {0};  )发现用指针函数uint16_t* adc_dma_value(void)来返回处理完后的AD采集之后,只有一个通道能正确显示。如果返回值不用指针函数返回,却是正常的。是不是mdk中不支持指针函数,还是别的原因?
1.PNG
2.PNG
3.PNG
4.PNG
airwill 发表于 2015-4-29 17:11 | 显示全部楼层
我估计不是编译器的问题,而是两维数组的处理问题吧
 楼主| lgq1542380129 发表于 2015-4-29 19:05 | 显示全部楼层
airwill 发表于 2015-4-29 17:11
我估计不是编译器的问题,而是两维数组的处理问题吧

不用返回指针的这个函数,我定义了一个结构体函数,函数内的处理不变,结构体返回两路AD均值滤波后的值,是正确的。
mmuuss586 发表于 2015-4-29 19:19 | 显示全部楼层
lgq1542380129 发表于 2015-4-29 19:05
不用返回指针的这个函数,我定义了一个结构体函数,函数内的处理不变,结构体返回两路AD均值滤波后的值, ...

那你用指针的时候, 也可以跟踪下程序;
可能指针的使用方法不当吧(编译器没报警告,说明肯定支持的)
 楼主| lgq1542380129 发表于 2015-4-29 19:53 | 显示全部楼层
mmuuss586 发表于 2015-4-29 19:19
那你用指针的时候, 也可以跟踪下程序;
可能指针的使用方法不当吧(编译器没报警告,说明肯定支持的) ...

软仿真,给二维数组赋值,观察watch数据正常。以前用IAR调430的时候,用指针函数正常的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

401

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部