完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在支持包ADC_DAC_Playback(SHARC)例子中,想在里面添加访问UART的程序,为什么只添加了UART初始化代码,程序运行时就出错。
代码如下: /* * Main function */ int main() { /** * Initialize managed drivers and/or services that have been added to * the project. * @return zero on success */ uint32_t Result = 0u; uint32_t i; /* configure System Event Controller SEC and Signal Routing Unit SRU */ adi_initComponents(); /* Software Switch Configuration for the EZ-Board */ ConfigSoftSwitches(); /* Initialize power service */ Result = PowerServiceInit(); /* Initialize GPIO for ADC/DAC reset control, PB1 Button reset */ if(Result == 0u) { Result = GpioInit(); } /* ADSP-SC589 Processor family */ /* Initialize SPU Service */ if(adi_spu_Init(0u, SpuMemory, NULL, NULL, &hSpu) != ADI_SPU_SUCCESS) { DBG_MSG("Failed to initialize SPU servicen"); return (ADI_SPU_FAILURE); } /* Make SPORT 4A to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, SPORT_4A_SPU_PID, true) != ADI_SPU_SUCCESS) { DBG_MSG("Failed to enable Master secure for SPORT 4An"); return (ADI_SPU_FAILURE); } /* Make SPORT 4B to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, SPORT_4B_SPU_PID, true) != ADI_SPU_SUCCESS) { DBG_MSG("Failed to enable Master secure for SPORT 4Bn"); return (ADI_SPU_FAILURE); } /* Make SPORT 4A DMA to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, SPORT_4A_DMA10_SPU_PID, true) != ADI_SPU_SUCCESS) { DBG_MSG("Failed to enable Master secure for SPORT 4A DMAn"); return (ADI_SPU_FAILURE); } /* Make SPORT 4B DMA to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, SPORT_4B_DMA11_SPU_PID, true) != ADI_SPU_SUCCESS) { DBG_MSG("Failed to enable Master secure for SPORT 4B DMAn"); return (ADI_SPU_FAILURE); } /* Initialize ADAU1979 */ if(Result == 0u) { Result = Adau1979Init(); } /* Initialize ADAU1962A */ if(Result == 0u) { Result = Adau1962aInit(); } /***********************************UART CODE INIT*************************/ /*init UART*/ if (UartInit() != 0u) { printf("UartInit error!n"); } /****************************************************************************/ /* Submit ADC buffers */ if(Result == 0u) { Result = Adau1979SubmitBuffers(); } /* Submit DAC buffers */ if(Result == 0u) { Result = Adau1962aSubmitBuffers(); } /* Enable data flow for only the ADC and DAC */ if((uint32_t)adi_adau1962a_Enable(phAdau1962a, true) != 0u) { /* return error */ return 1u; } if((uint32_t)adi_adau1979_Enable(phAdau1979, true) != 0u) { /* return error */ return 1u; } if(Result == 0u) { /* Audio loopback */ while(1) { /* Process audio buffers */ Result = ProcessBuffers(); /* IF (Error) */ if(Result != 0u) { /* exit loopback */ break; } /* check if an error has been detected in callback */ if(bEventError) { /* there has been an error returned in the callback */ Result =1u; break; } } } if (Result == 0u) { printf("All donen"); } else { printf(" Errorn"); } } /*****************************UART**************************/ uint32_t UartInit(void) { uint32_t result = 0u; ADI_UART_RESULT eResult; #if 0 /* Make UART to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, UART_SPU_PID, true) != ADI_SPU_SUCCESS) { printf("Failed to enable Master secure for UARTn"); return 1u; } /* Make UART Tx DMA to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, UART_TX_DMA_SPU_PID, true) != ADI_SPU_SUCCESS) { printf("Failed to enable Master secure for UART Tx DMAn"); return 1u; } /* Make UART to generate secure transactions */ if(adi_spu_EnableMasterSecure(hSpu, UART_RX_DMA_SPU_PID, true) != ADI_SPU_SUCCESS) { printf("Failed to enable Master secure for UART Rx DMAn"); return 1u; } #endif /* * Initialize UART */ /* Open UART driver */ eResult = adi_uart_Open(UART_DEVICE_NUM, ADI_UART_DIR_RECEIVE, gUARTMemory, ADI_UART_BIDIR_INT_MEMORY_SIZE, &ghUART); if (eResult != ADI_UART_SUCCESS) { printf("Could not open UART Device 0x%08Xn", eResult); return 1; } /* Set the UART Mode */ eResult = adi_uart_SetMode(ghUART, ADI_UART_MODE_UART); if (eResult != ADI_UART_SUCCESS) { printf("Could not set the Mode 0x%08Xn", eResult); return 1; } /* Set UART Baud Rate */ eResult = adi_uart_SetBaudRate(ghUART, BAUD_RATE); if (eResult != ADI_UART_SUCCESS) { printf("Could not set the Baud Rate 0x%08Xn", eResult); return 1; } /* Set number of stop bits */ eResult = adi_uart_SetNumStopBits(ghUART, ADI_UART_ONE_STOPBIT); if (eResult != ADI_UART_SUCCESS) { printf("Could not set the stop bits 0x%08Xn", eResult); return 1; } /* Set number of stop bits */ eResult = adi_uart_SetWordLen(ghUART, ADI_UART_WORDLEN_8BITS); if (eResult != ADI_UART_SUCCESS) { printf("Could not set word length 0x%08Xn", eResult); return 1; } /*Set callback function*/ //eResult = adi_uart_RegisterCallback(ghUART, UartCallBack, NULL); return 0u; } |
|
相关推荐
1个回答
|
|
hi,
For this kind of UART question, please seek help from your local support or send it to processor.china@analog.com. Thanks! Henry |
|
|
|
只有小组成员才能发言,加入小组>>
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1205 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1832 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4196 浏览 2 评论
8925 浏览 1 评论
3102 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1307浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1596浏览 2评论
1528浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1205浏览 2评论
1335浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-20 06:02 , Processed in 0.952882 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号