- 杂志
 搜 索: 
 论坛 » MCU应用 » 求助瑞萨工程师关于用DMA实现串口连续收发的问题
广告招商
版主: renesasstk , QQMCU , renesaschina , l0p0c
 发表新贴 
 发表回复 
 求助瑞萨工程师关于用DMA实现串口连续收发的问题  发表于 2008-11-07 14:44:25 [您是本帖的第233位阅读者]     [1楼] 
呢称:zhushengnan
加我为好友
要求每次传送8个字节的数据,使用时钟异步串行模式。不知道如何才能让DMA工作?以发送为例:我设定的DMA触发源为UART0发送中断(TI=0),程序段如下,希望各位帮忙找到问题,谢谢!

#include "sfr28.h"

void mcu_init(void);

void io_init(void);

void dma_init(void);

unsigned short rcv_data[8];

void main(void)

{

  mcu_init();

  io_init();

  dma_init();

  asm("fset i");

  dm0con |=0x08;

  u0c1 |=0x05;

  while(1);

}

void mcu_init(void)

{

   prcr=0x03;
   pm0=0x00;//Single-chip mode

   pm1=0x08;//No wait,No expansion

   cm0=0x08;//XCIN-XCOUT High

   cm1=0x20;
   pm2=0x00;

   pclkr=0x03;//TAiTBiSI/O clock select bit

   prcr=0x00;//Protects all registers

}

void io_init(void)

{

   u0mr=0x05;//UART mode

   u0c0=0x10;//BRG f1 or f2

   u0brg=129;//n=129

   u0c1=0x00;

   ucon=0x01;//set U0C1

   u2smr=0x00;

   u2smr2=0x00;

   u2smr3=0x00;

   u2smr4=0x00;

   s0ric=0;

}

 

void dma_init(void)

{

  dm0sl=0x0a;

  dm0con=0x10;

 

  sar0_addr.byte.low=(char)( &rcv_data);

  sar0_addr.byte.mid=(char)((unsigned long)(& rcv_data)>>8);

  sar0_addr.byte.high=(char)((unsigned long)(& rcv_data)>>16);

 

  dar0_addr.byte.low=(char)(&u0tb);

  dar0_addr.byte.mid=(char)((unsigned long)(& u0tb)>>8);

  dar0_addr.byte.high=(char)((unsigned long)(& u0tb)>>16);//set DMA0 transfer counter

  tcr0=7;

  dm0ic=4;//set DMA0 interrupt priority-level=4

}
我尝试在while(1)前加上u0tb=0x5a,但是DMA仍然没有运行,只能收到0x5a本身。


 
 RE: 求助瑞萨工程师关于用DMA实现串口连续收发的问题  发表于 2008-11-13 11:24:09 [2楼] 
呢称:Serina_xu
加我为好友
“我尝试在while(1)前加上u0tb=0x5a,但是DMA仍然没有运行,只能收到0x5a本身。”
您所说“DMA仍然没有运行”是指没有进入DMA中断吗?“只能收到0x5a本身”是指接收端只能收到1个字节数据是吗?

 
 RE: 求助瑞萨工程师关于用DMA实现串口连续收发的问题  发表于 2008-11-19 17:53:18 [3楼] 
呢称:renesaschina
加我为好友
请参考:
http://documentation.renesas.com/eng/products/region/rtcn/mpumcu/apn/rcc05b0070_m16cap.pdf
这个是M16C/62P的,28与62P基本相同。
 
共3条 1/1 1   
   快速回复主题
  用户名 : 匿名不能发帖!请先 [ 登陆 ]
  标 题:
  内 容 :
 
EEPW元器件搜索  强力提供
关于我们 | 广告服务 | 企业会员服务 | 新手上路 | 联系我们 | 友情链接
《电子产品世界》杂志社 版权所有 北京东晓国际技术信息咨询有限公司
Copyright ©2002 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备060382号