打印
[STM32F1]

ADC+DMA问题

[复制链接]
1401|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本人用的是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 (64.88 KB )

1.PNG

2.PNG (82.65 KB )

2.PNG

3.PNG (37.68 KB )

3.PNG

4.PNG (28.7 KB )

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均值滤波后的值, ...

那你用指针的时候, 也可以跟踪下程序;
可能指针的使用方法不当吧(编译器没报警告,说明肯定支持的)

使用特权

评论回复
5
lgq1542380129|  楼主 | 2015-4-29 19:53 | 只看该作者
mmuuss586 发表于 2015-4-29 19:19
那你用指针的时候, 也可以跟踪下程序;
可能指针的使用方法不当吧(编译器没报警告,说明肯定支持的) ...

软仿真,给二维数组赋值,观察watch数据正常。以前用IAR调430的时候,用指针函数正常的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

401

帖子

6

粉丝