OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3674|回复: 6

[miniF103] 分享:mini板子串口显示和屏幕显示的ADC+DMA

[复制链接]

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-5-25 13:00:56 | 显示全部楼层 |阅读模式
本帖最后由 1208 于 2019-6-13 19:56 编辑

1)串口显示6通道ADC+DMA
通过设置外设地址ADC1_DR_Address    ((uint32_t)0x4001244C)
DMA内存基地址 ADC1ConvertedValue;

将数据从外设发送到内存读取
数据传输方向:DMA_DIR_PeripheralSRC;  

由于开通6个通道,需要用到循环工作模式下
MYDMA_Config(DMA1_Channel1,(u32)ADC1_DR_Address,(u32)&AD_Value,6);//cndtr对应所开信道个数
要记得使能指定的ADC1的软件转换启动功能,才有数据传输
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
使能 ADC1 DMA :ADC_DMACmd(ADC1, ENABLE);

2)屏幕显示12通道ADC+DMA

通过ADC外设基地址(uint32_t)&ADC1->DR
从外设ADC发送到内存读取
数据传输方向DMA_DIR_PeripheralSRC
DMA通道的DMA缓存的大小110=10*11
ADC1ConvertedValue[10][11];
同样需要使能指定的ADC1的软件转换启动功能,才有数据传输

ADC_SoftwareStartConvCmd(ADC1, ENABLE);
使能 ADC1 DMA :ADC_DMACmd(ADC1, ENABLE);
3)串口DMA
串口的外设地址(u32)&USART1->DR
DMA 存储器地址(u32)DMA_Rece_Buf
也是从外设模式到存储器DMA_DIR_PeripheralSRC

USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);//开启空闲中断
使能对应的通道需要看下中文参考手册
使能DMA传输:DMA_Cmd(DMA1_Channel5, ENABLE);

开启空闲中断:USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);
使能串口1 DMA接收:USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);
使能串口1:USART_Cmd(USART1, ENABLE);
串口接收中断的判断:if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)
恢复DMA指针,等待下一次的接收:MYDMA_Enable(DMA1_Channel5);


mini屏幕:12个ADC+DMA.zip

3.42 MB, 下载次数: 227

mini串口:6路ADC+DMA.zip

3.57 MB, 下载次数: 226

mini:串口空闲中断+DMA.zip

2.7 MB, 下载次数: 92

业精于勤荒于嬉;行成于思毁于随!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-5-6
在线时间
5 小时
发表于 2019-5-25 20:15:45 | 显示全部楼层
你好,请问我是精英板,是不是需要改一下代码?
回复 支持 反对

使用道具 举报

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10541
金钱
10541
注册时间
2017-2-18
在线时间
1908 小时
发表于 2019-8-10 16:58:19 | 显示全部楼层
1.mini屏幕:11个ADC+DMA.zip:这个程序实现的是ADC1的11个通道的数据采集并通过DMA传数据到内存(采集引脚是:PC0-PC2,PA0-PA7)
2.mini串口:6路ADC+DMA.zip:这个程序实现的是ADC1的6个通道的数据采集并通过DMA传数据到内存(采集引脚是:PA0-PA5)
3.mini:串口空闲中断+DMA.zip:这个程序利用串口1的空闲中断来接收来自上位的数据并串口打印相关数据
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-1-12
在线时间
1 小时
发表于 2020-1-14 17:06:00 | 显示全部楼层
你好,我想问一下,我也是MINI板,打算测量6个压电式传感器的电压值,直接将传感器通过杜邦线引出连接到PA0-PA5,串口显示6个值都是0值,这是什么原因呢
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
 楼主| 发表于 2020-1-15 14:50:36 | 显示全部楼层
严文江 发表于 2020-1-14 17:06
你好,我想问一下,我也是MINI板,打算测量6个压电式传感器的电压值,直接将传感器通过杜邦线引出连接到PA0 ...

不要接传感器,直接通过杜邦线接3.3V引脚可以用不,可以显示3.3V的值不
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-2-7
在线时间
7 小时
发表于 2020-4-8 16:20:23 | 显示全部楼层
下载后工程打不开。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2022-4-7
在线时间
4 小时
发表于 2022-4-23 10:41:56 | 显示全部楼层
我也是这个问题,直接接3.3V电压,也还是不行,不接都是0V
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 23:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表