请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2530 主题中讨论的其他器件:CC2510
大家好
写入一次后、DMAARM 将 在重复单次(TMODE=0x10)中设置0。 如果我的代码 错误、请告诉我如何使用 重复单模式。
谢谢你。
#include
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char 字节;
#pragma bitfields=反转
typedef 结构{
字节 SRCADDRH;
字节 SRCADDRL;
字节 DESTADDRH;
字节 DESTADDRL;
字节 VLEN :3;
字节 LENH :5;
字节 LENL :8;
字节 WORDSIZE :1;
字节 TMODE :2;
字节 trig :5;
字节 SRCINC :2;
字节 DETINC :2;
字节 IRQMASK :1;
字节 M8 空:1;
字节优先级:2;
}DMA_DESC;
#pragma 位字段=默认
值#define LED1 P1_0
#define LED2 P1_1
DMA_DESC dmaConfig[5];
#define DMATRIG_UTX0 15
unsigned char a[]="QSTkalsjgkjkjkfjkfjkajskl"(
void
i);void I (void I);t I (void I);t I (void I)+);t I (void I (f);t I t f (void I);t f (void I);t f (f);t f 1、t f (void I);t f (void I);t f (
for (j=0;j<200;j++)
{
asm ("NOP");
asm ("NOP");
asm ("NOP");
}
}
void LED_init ()
{
P1DIR|=0x03;
}
void initUART (void)
{
CLKCONCMD&&~0x40;
while (!(SLEEPSTA&0x40));
CLKCONCMD&&=~0x47;
SLEEPCMD|=0x04;
PERCFG=0x00;
P0SEL = 0x3c;
P2DIR&=~0xc0;
U0CSR|=0x80;
U0GCR|=10;
U0BAUD|=216;
}
void UartTX_Send_String (uchar *数据、int len)
{
int j;
for (j=0;j 8);
dmaConfig[3].SRCADDRL=(uchar)(((uint)&a)&0x00ff);
dmaConfig[3].DESTADDRH=(uchar)(((uint)&X_U0DBUF>8);
dmaConfig[3]。DESTADDRL=(uV00)
;uDAUCHAR (u0X=uF);dmaConfig (uV0u0uint=uF)
dmaConfig[3].LENh=(uchar)(((uint)(3">8);
dmaConfig[3].LENL=(uchar)(((uint)(3)));
dmaConfig[3].WORKSIZE = 0x00;
dmaConfig[3].TMODE=0x10;
dmaConfig[3].TRIG=0x00
dmaConfig[3].SRCINC=0x01;
dmaConfig[3].DESTINC=0x00;
dmaConfig[3].IRQMASK=0x00;
dmaConfig[3].M8=0x00;
dmaConfig[3].Priority=0x02;
DMA1CFGGh=(uchar)((((uint) dmaConfig)>>8);
DMA1CFGL=(uchar)((((uint) dmaConfig)&0x00ff);
asm ("nop");
}
void main ()
{
LED_init ();
DMA_Init();
initUART ();DIMA=0x80
;DMAARM =0xMA00
;DMA00
DMAARM=0x10;
while (1)
{
delay();
LED1=~LED1;
delay();
LED2=~LED2;
delay();
// DMAARM=0x10;
操作
{
DMAREQ=0x10;
while ((UTX0IF=0));
UTX0IF=0;
}
while (!(DMAIRQ&0x10));
DMAIRQ=0x00;
while (DMAARM!= 0x10);
}