第4章 CC2530基础开发.ppt

  1. 1、本文档共231页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
# 4.8.3 DMA中断 DMA 初始化如下: void DMAtest(void) { char i; char error = 0; //源字符串 unsigned char sourceString[] = I am the sourceString!\r\n; //目的字符串 unsigned char destString[sizeof(sourceString)]; memset(destString,0,sizeof(destString)); //源地址 dmaConfig.SRCADDRH=(unsigned char)((unsigned int)sourceString 8); dmaConfig.SRCADDRL=(unsigned char)((unsigned int)sourceString ); //目的地址 dmaConfig.DESTADDRH=(unsigned char)((unsigned int)destString 8); dmaConfig.DESTADDRL=(unsigned char)((unsigned int)destString); //选择LEN 作为传送长度 dmaConfig.VLEN = 0x00; //传输长度 dmaConfig.LENH = (unsigned char)((unsigned int)sizeof(sourceString)8); dmaConfig.LENL = (unsigned char)((unsigned int)sizeof(sourceString)); //选择字节byte传送 dmaConfig.WORDSIZE = 0x00; //选择块传送模式 dmaConfig.TMODE = 0x01; //无触发,可理解为手动触发 dmaConfig.TRIG = 0; 4.8.3 DMA中断 DMA 初始化如下: //源地址增量为1 dmaConfig.SRCINC = 0x01; //目的地址增量为1 dmaConfig.DESTINC =0x01; //使能中断 dmaConfig.IRQMASK = 1; //选择8位长的字节来传送数据 dmaConfig.M8 = 0x00; //传送优先级为高 dmaConfig.PRIORITY = 0x02; //将配置结构体的首地址赋予相关SFR DMA0CFGH = (unsigned char)((unsigned int)dmaConfig 8); DMA0CFGL = (unsigned char)((unsigned int)dmaConfig); asm(nop); //启用配置 DMAARM = 0x01; //清中断标志 DMAIRQ = 0x00; //启动DMA传输 DMAREQ = 0x01; } 4.8.3 DMA中断 头文件,宏定义及函数声明 //头文件 #include iocc2530.h #include string.h //LED的定义 #define LED1 P1_0 #define LED2 P1_1 #define LED3 P1_2 #define LED4 P1_3 //源字符串 unsigned char sourceString[] = I am the sourceString!\r\n; //目的字符串 unsigned char destString[sizeof(sourceString)]; //函数的声明 void InitDMA(void); void LED_Init(void); void initUARTtest(void) 4.8.3 DMA中断 LED的初始化 void LED_Init(void) { //p1为普通I/O口 P1SEL = 0x00; //p1.0,p1.1,p1.7输出 P1DIR |= 0x0F; //打开LED1 LED1 = 0; //打开LED2 LED2 = 0; //关闭LED3 LED3 = 0; //关闭LED4 LED4 = 0; } 4.8.3 DMA中断 Main()函数 void main(void) { Delay(100); EA = 0; //LED初始化; LED_Init(); //串口初始化 initUARTtest(); //DMA初始化 InitDMA(); //

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档