OpenEdv-开源电子网

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

关于串口和DMA传输数据的问题

[复制链接]

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-4-28
在线时间
0 小时
发表于 2014-5-8 20:06:31 | 显示全部楼层 |阅读模式
请问在串口中断方式接受数据结束以后需不需要设置一些寄存器,DMA传输完以后需要设置哪些寄存器?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-8 22:43:00 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-4-28
在线时间
0 小时
 楼主| 发表于 2014-5-8 22:59:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我在串口2的中断中接收完数据时,把这个数组通过MDA的通道4发送到串口1中,除了收到的内容发出去以外,还有其他无用的数据,而且一直在发送。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-8 23:39:05 | 显示全部楼层
回复【3楼】tianyizll:
---------------------------------
你要设置DMA其实地址,以及数据传输量
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-4-28
在线时间
0 小时
 楼主| 发表于 2014-5-9 09:40:24 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
MyDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)RS232_RX_BUF);

void MyDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar)
{
RCC->AHBENR|=1<<0;
delay_ms(5);
DMA_CHx->CPAR=cpar;
DMA_CHx->CMAR=cmar;
DMA_CHx->CCR=0x00000000;
DMA_CHx->CCR|=1<<4;
DMA_CHx->CCR|=0<<5;
DMA_CHx->CCR|=0<<6;
DMA_CHx->CCR|=1<<7;
DMA_CHx->CCR|=0<<8;
DMA_CHx->CCR|=0<<10;
DMA_CHx->CCR|=1<<12;
DMA_CHx->CCR|=0<<14;

DMA_CHx->CCR|=1<<1;
}

USART1->CR3=1<<7; 
MyDMA_Enable(DMA1_Channel4,USART2_RX_STA&0x3FFFFFFF);

这几步是吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-9 18:55:44 | 显示全部楼层
还有个CNTR寄存器呢?
怎么没有配置?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-4-28
在线时间
0 小时
 楼主| 发表于 2014-5-10 11:11:02 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
CNTR寄存器在这个函数里
void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx)
{
DMA_CHx->CCR&=~(1<<0);       //??±?DMA???? 
DMA_CHx->CNDTR=DMA1_MEM_LEN; //DMA1,?????????? 
DMA_CHx->CCR|=1<<0;          //????DMA????
}
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-4-28
在线时间
0 小时
 楼主| 发表于 2014-5-10 11:44:49 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
上条回复发错函数了,是这个
void MyDMA_Enable(DMA_Channel_TypeDef*DMA_CHx,u16 cndtr)
{
DMA_CHx->CCR&=~(1<<0); //??±?DMA????
DMA_CHx->CNDTR=cndtr; //DMA1????????????
DMA_CHx->CCR|=1<<0; //????DMA????
}
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-4-28
在线时间
0 小时
 楼主| 发表于 2014-5-10 11:46:06 | 显示全部楼层
回复【7楼】tianyizll:
---------------------------------
还有个问题,串口调试助手里面,发送的时候有个发送新行的勾选,这个选中不选中有什么区别,为什么我不勾选中,信息发不出去,而选中后就能发送。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-10 20:57:39 | 显示全部楼层
回复【9楼】tianyizll:
---------------------------------
勾选就会自动在最后发送多2个字符: 0X0D 0X0A
不勾选就不会发送.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 03:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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