打印
[AT32F407]

ADC问题的继续

[复制链接]
1330|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhjb1|  楼主 | 2024-11-19 18:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhjb1 于 2024-11-21 16:36 编辑

接受意见修改一下。一、本实验:用AWB设置的工程,ADC1,5路采样,12位右对齐,DMA方式,缓冲。生成代码后ADC1的5路结果绑定在DMA2的4通道上,在中断服务中是DMA2的4_5:void DMA2_Channel4_5_IRQHandler(void)。ADC1采用5路采样IN1,IN2,IN3,IN6,IN7。IN7 采样芯片温度;我设置的采样结果赋值给数组adcx[5],这个数组将结果输出到LCD供显示用。
二、采用本网站的实例,此实例的定义如下:
#define Channel_num 4
#define ADC1_BUffer_Size 64
#define DMA_buffer_size  (Channel_num*ADC1_BUffer_Size)
uint16_t ADC1_Buffer[ADC1_BUffer_Size][Channel_num] = {0};

定义的DMA缓冲大小是256(64x4):dma_data_number_set(DMA1_CHANNEL1,256);

可以得到数组为ADC1_Buffer[64][4];——实例4路采样4个通道,我的是5路,改成ADC1_Buffer[x][5];其中的x想在实验中取得,因为实例程序代码中x是index从0->5来填充,我想够用即可。
我也采用这么的大小的缓冲区定义为:dma_data_number_set(DMA2_CHANNEL4,256);

实验结果x无论采用多大的数值(实验中x采用过5、16、24、32、50),其结果都不对!能看到采样的5路数据,但显示出来的结果除了有限的5个数据,还有个别的不知什么数据,并且他们没有规律的显示在不同顺序上,参看下图上位机模拟串口打印的结果。如果50再大就超出256了。
问题:
1. 当采用5 路12位右对齐方式的数据,DMA2_4的缓冲应该多大?我实验时将ADC1_Buffer[x][5];x取值5、16,24、32,50;等等结果一致好像与缓冲大小无关。
应该取多少?
2. 实力的方法可以的到数据,但数据读出的顺序没有规律,就是说我将读出的数据打印出同时顺序赋值给adcx[];但显示和打印的结果有点随机性无规率,下图可以参考。赋值方法为:index是从0->5。
adcx[0]=ADC1_Buffer[index][0];adcx[1]=ADC1_Buffer[index][1];...adcx[4]=ADC1_Buffer[index][4];
应该如何获得正确的数值呢?
3. 上赋值时for(index=0;index<5;index++)的循环,分别赋值了5次,结果应该是最后一次读的。我就直接进行如下测试,index固定从0->4赋值给adcx[],不循环了,就像如下:
adcx[0]=ADC1_Buffer[index][0]; adcx[2]=ADC1_Buffer[index+1][1];... ; adcx[4]=ADC1_Buffer[index+4][4];
以及
adcx[0]=ADC1_Buffer[index][0]; adcx[1]=ADC1_Buffer[index+1][0]; adcx[2]=ADC1_Buffer[index+4][0]; adcx[3]=ADC1_Buffer[index+4][0]; adcx[4]=ADC1_Buffer[index+4][0];
以及
adcx[1]=ADC1_Buffer[index+4][x]; x从0->4的循环
结果有时没有数据,有数据时,整体上得到的采样结果还是顺序乱蹦。
哪里出问题了呢?
这是ADC采样的问题。最后:
4. 当配置出DMA2_4_5中断服务之后,下载代码,TFTLCD只是刚开机可以显示,马上就黑了!这是第三个大问题,这个问题会有头绪的,将来重新划分地址应该能解决。这样就去掉了彩色LCD,只留黑白的。
5. 问题是AT_LINK下载程序后单片机不能自动运行了,必须拔掉AD_LINK再重新插上才运行。keil项目设置中run的勾一定会打上的。
首先关心的时ADC采样能正常!如果数据正常了,其它问题可以慢慢解决,毕竟不是硬件问题。
以上希望工程师,老师们部门看看提出意见,先谢谢了。顺便说一下,参考过官网的实例,本站:楼主:我想看大海、、楼主:可怜的小弗朗仕、、楼主:tpgf、等等,大约翻到超过44页。在此一并表示感谢

ADC_DMA采样结果乱变.jpg (343.57 KB )

ADC_DMA采样结果乱变.jpg

使用特权

评论回复
沙发
呐咯密密| | 2024-11-20 09:40 | 只看该作者
下载完不能运行勾选这个

使用特权

评论回复
板凳
xionghaoyun| | 2024-11-20 10:10 | 只看该作者
兄弟 描述太乱了

使用特权

评论回复
地板
zhjb1|  楼主 | 2024-11-20 18:23 | 只看该作者
本帖最后由 zhjb1 于 2024-11-20 18:25 编辑
呐咯密密 发表于 2024-11-20 09:40
下载完不能运行勾选这个

您好,与这个勾勾没有关系。这个勾勾***是打上的。就是启用了DMA2_4之后下载完就再也起不来了。
因为曾经在做STM32时遇到过,重新加电可以起来。看来高手要么忙,要么无暇顾及。但愿如此,二非其他。

使用特权

评论回复
5
LEDyyds| | 2024-11-20 20:15 | 只看该作者
你这太乱了,根本看不下去,好好整理一下。提问也是一个技术活

使用特权

评论回复
6
zhjb1|  楼主 | 2024-11-21 16:24 | 只看该作者
LEDyyds 发表于 2024-11-20 20:15
你这太乱了,根本看不下去,好好整理一下。提问也是一个技术活

您好,重新整理了,谢谢

使用特权

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

本版积分规则

个人签名:永远好心情 [img]https://bbs.21ic.com/static/image/s

59

主题

271

帖子

1

粉丝