大家好,很高兴在论坛和大家成为朋友,我遇到的问题是:我使用的是ADSP-BF506芯片,配置PG0,PG3为UART1_RX和UART1_TX,现在我使用DMA模式进行数据的发送,可是一直在调试程序,系统中断,DMA等地址配置可能存在问题,一直都没能成功,大家能帮我看看吗?一起交流下,我会很感激的。以下是程序相关段落情况:
*pPORTG_MUX =0x8082;//配置UART1 TX RX
//*pPORTG_FER = 0xFFE4; //Enable DR1SEC, DR1PRI, RFS1, RSCLK1 for SPORT1 RX
*pPORTG_FER = 0x8FEF; //timer1,uart
/*PFIO初始化 */
*pPORTF_FER|=0x0000; //GPIO MODE
*pPORTFIO_DIR=0xFFFF; //PF0~~PF15,OUTPUT
/*UART1*/
*pUART1_DLL = 0x2C; //Divisor=5208,转换为16进制数是1458
*pUART1_DLH = 0x0A;
*pUART1_LCR = 0x03; //数据长度为8位,一个停止位,无奇偶校验位
*pUART1_GCTL = 0x41; //EDB0=1,使能串口时钟
*pUART1_IER_SET = 0x03 ; //UART1_rx,UART1_tx中断使能
*pSIC_IAR3 = 0xFFFFFF43; //UART1_tx IVG11,UART1_rx IVG10
*pSIC_IMASK = 0x1800;
*pSIC_IMASK0 = 0X03000000;
register_handler(ik_ivg10,UART1_Dma_Isr_Rx);
register_handler(ik_ivg11,UART1_Dma_Isr_Tx);
/*DMA_UART1_Send_Data*/
*pDMA11_CONFIG=0x0080; /* not autobuff,linear block,8bit,Source */
*pDMA11_PERIPHERAL_MAP=0x9000;/*UART-TX*/
*pDMA11_X_COUNT = send_lenth*4;
*pDMA11_X_MODIFY = 1;/*Linear*/
*pDMA11_START_ADDR = Send_Data; /* enable sport0_dma_start_hi_addr */
//Ttemp = *pDMA11_CONFIG;
//*pDMA11_CONFIG=(Ttemp|0x01);
//*pDMA11_CONFIG=0x0081; /*Enable DMA11*/
/***************DMA使能*************/
void Enable_DMA_Sport1_ADC(void)
{
*pSPORT1_RCR1 |= 0x1; // enable SPORT
*pACM_CTL |= 0x0001; // now enable the ACM unit
*pTIMER_ENABLE = TIMEN7; // now enable the PWM unit
*pDMA4_CONFIG = (*pDMA4_CONFIG | DMAEN); // enable DMA4
}
Send_Data[0]=11;
Send_Data[1]=13;
Send_Data[2]=15;
Send_Data[3]=16;
Send_Data[4]=17;
Send_Data[5]=18;
Send_Data[6]=19;
Send_Data[7]=20;
Send_Data[8]=21;
Send_Data[9]=22;
Send_Data[10]=23;
Send_Data[11]=17;
Send_Data[12]=18;
Send_Data[13]=19;
Send_Data[14]=20;
Send_Data[15]=21;
Send_Data[16]=22;
Send_Data[17]=23;
Send_Data[18]=23;
*pDMA11_CONFIG=DMAEN; /*Enable DMA11*/
不知道哪里存在问题,有其他建议希望我们可以联系,谢谢!我的QQ:345113293