4728|2

1059

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

求个串口DMA方式接收数据例程..自己写的有bug [复制链接]

本来觉得从发送改写成接收.应该是很简单的啊.实践了一下..基本上失败了.收到的数据保存在本地数组.然后分别在LCD显示和通过另一个串口输出.LCD会快速的显示一遍所有字符.串口输出则全部是乱码.也不知道哪里错了.用的红牛板.谢谢大家啦
完整程序在下面.贴几个自己觉得问题比较大的地方.大虾帮忙瞅瞅吧

void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)
{
        u32 DR_Base;  //做缓冲用,不知道为什么.非要不可
        RCC->AHBENR|=1<<0;//开启DMA1时钟
        DR_Base=cpar;
        DMA_CHx->CPAR=DR_Base;          //DMA1 外设地址     DMA通道 x外设地址寄存器(DMA_CPARx)
        DMA_CHx->CMAR=(u32)cmar; //DMA1,存储器地址           DMA通道 x存储器地址寄存器(DMA_CmARx)
        DMA1_MEM_LEN=cndtr;      //保存DMA传输数据量
        DMA_CHx->CNDTR=cndtr;    //DMA1,传输数据量
        DMA_CHx->CCR=0X00000000;//复位
        DMA_CHx->CCR|=1<<0;  //通道开启  add
        DMA_CHx->CCR|=1<<1;  //允许传输完成中断  add
        DMA_CHx->CCR|=0<<4;  //从外设读          
        DMA_CHx->CCR|=0<<5;  //普通模式         0
        DMA_CHx->CCR|=1<<6;  //外设地址非增量模式
        DMA_CHx->CCR|=0<<7;  //存储器增量模式
        DMA_CHx->CCR|=0<<8;  //外设数据宽度为8位
        DMA_CHx->CCR|=0<<10; //存储器数据宽度8位
        DMA_CHx->CCR|=1<<12; //中等优先级
        DMA_CHx->CCR|=0<<14; //非存储器到存储器模式        0                 
}


main:
                 MYDMA_Config(DMA1_Channel5,(u32)&USART1->DR,(u32)SendBuff,10);// added
                LCD_ShowString(60,150,"Start Transimit....");
                LCD_ShowString(60,170,"   %");//显示百分号

                printf("\n\nDMA DATA:\n");
                MYDMA_Config(DMA1_Channel5,(u32)&USART1->DR,(u32)SendBuff,10);// added             
            USART1->CR3=1<<6;           //使能串口1的DMA接受     
                MYDMA_Enable(DMA1_Channel5);//开始一次DMA传输!

DMA串口实验 接收 有bug.rar

776.03 KB, 下载次数: 31

此帖出自stm32/stm8论坛

最新回复

目前出现什么 BUG  详情 回复 发表于 2011-3-28 17:32
点赞 关注(1)
 

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 

回复 楼主 astwyg 的帖子

目前出现什么 BUG
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 

回复

1059

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
原帖由 daicheng 于 2011-3-28 17:32 发表
目前出现什么 BUG



已经调好了.之前是因为本地指针自增1没有打开.发个能超时的DMA收发程序.有点小白,自己写的 嘿嘿

[ 本帖最后由 astwyg 于 2011-6-14 16:23 编辑 ]

DMA串口实验 接收 完成2011年3月30日 223813.rar

782.26 KB, 下载次数: 204

此帖出自stm32/stm8论坛

赞赏

1

查看全部赞赏

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表