EasyManua.ls Logo

STC micro STC8A8K64D4 Series - Page 683

Default Icon
901 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
STC8A8K64D4 Series Manual
- 667 -
{
if((DMATxFlag) && (DMARxFlag))
{
CheckSum = crc16_ccitt(DMABuffer,DMA_AMT_LEN-1);
if(((u8)CheckSum == DMABuffer[DMA_AMT_LEN-1]) &&
((u8)(CheckSum>>8) == DMABuffer[DMA_AMT_LEN]))
{
printf("\r\nOK! CheckSum = %04x\r\n",CheckSum);
}
else
{
printf("\r\nERROR! CheckSum = %04x\r\n",CheckSum);
}
DMATxFlag = 0;
DMA_UR1T_CR = 0xc0; //bit7 1:Enable UART1_DMA,
//bit6 1:Start UART1_DMA automatic transmission
DMARxFlag = 0;
DMA_UR1R_CR = 0xa1; //bit7 1:Enable UART1_DMA,
//bit5 1:Start UART1_DMA automatic reception,
//bit0 1:clear FIFO
}
}
}
void DMA_Config(void)
{
P_SW2 = 0x80;
DMA_UR1T_CFG = 0x80; //bit7 1:Enable Interrupt
DMA_UR1T_STA = 0x00;
DMA_UR1T_AMT = DMA_AMT_LEN; // Set total bytes to be transferred
n+1
DMA_UR1T_TXA = DMABuffer;
DMA_UR1T_CR = 0xc0; //bit7 1:Enable UART1_DMA,
//bit6 1:Start UART1_DMA automatic transmission
DMA_UR1R_CFG = 0x80; //bit7 1:Enable Interrupt
DMA_UR1R_STA = 0x00;
DMA_UR1R_AMT = DMA_AMT_LEN; // Set total bytes to be transferred
n+1
DMA_UR1R_RXA = DMABuffer;
DMA_UR1R_CR = 0xa1; //bit7 1:Enable UART1_DMA,
//bit5 1:Start UART1_DMA automatic reception, bit0 1:clear
FIFO
}
void SetTimer2Baudraye(u16 dat) //select baud rate:
//2: Use Timer2 as baud rate generator,
//Other values: Use Timer1 as baud rate generator.
{
AUXR &= ~(1<<4); //Timer stop
AUXR &= ~(1<<3); //Timer2 set As Timer
AUXR |= (1<<2); //Timer2 set as 1T mode
T2H = dat / 256;
T2L = dat % 256;
IE2 &= ~(1<<2); //Disable interrupts
AUXR |= (1<<4); //Timer run enable
}
void UART1_config(u8 brt) //select baud rate:
//2: Use Timer2 as baud rate generator

Table of Contents

Related product manuals