Не выходит запустить uart blackfin.
Использую такой инит
void uart_init (unsigned int divisor) {
/* // UART0 Controller (0xFFC00400 - 0xFFC004FF) #define pUART0_THR ((volatile uint16_t *)UART0_THR) #define pUART0_RBR ((volatile uint16_t *)UART0_RBR) #define pUART0_DLL ((volatile uint16_t *)UART0_DLL) #define pUART0_IER ((volatile uint16_t *)UART0_IER) #define pUART0_DLH ((volatile uint16_t *)UART0_DLH) #define pUART0_IIR ((volatile uint16_t *)UART0_IIR) #define pUART0_LCR ((volatile uint16_t *)UART0_LCR) #define pUART0_MCR ((volatile uint16_t *)UART0_MCR) #define pUART0_LSR ((volatile uint16_t *)UART0_LSR) #define pUART0_SCR ((volatile uint16_t *)UART0_SCR) #define pUART0_GCTL ((volatile uint16_t *)UART0_GCTL)
*/
// enable UART clock. *pUART0_GCTL = UCEN;//enable uart clock // Read period value and apply formula: divisor = period/16*8 // Write result to the two 8-bit DL registers (DLH:DLL). *pUART0_LCR = DLAB;//#define DLAB 0x80 Divisor Latch Access-ðàçðåøåíèå äîñòóïà â ðåãèñòð DLL,DLH *pUART0_DLL = divisor; *pUART0_DLH = divisor>>8; // Clear DLAB again and set UART frame to 8 bits, no parity, 1 stop bit. *pUART0_LCR = WLS(8);//#define WLS(x) (((x)-5) & 0x03) /* Word Length Select //*pUART0_MCR = *pUART0_MCR | (1<<4);//âêëþ÷èòü ïèíû rx tx (bit4=1)
*pPORTFIO_DIR =*pPORTFIO_DIR | (1<<11);// F11 - out - bit11=1), *pPORTF_FER = *pPORTF_FER & ~(1<<11);//tx bit11=0 - uart tx, =1 - F11. pin13 //*pPORTF_FER = *pPORTF_FER |(1<<11); *pPORTF_FER = *pPORTF_FER & ~(1<<12);//rx bit12=0 - uart rx, =1 - F12. pin15 //*pPORTFIO_INEN=*pPORTFIO_INEN | (1<<11) | (1<<12);//enable pin f11,f12 *pPORTF_MUX = *pPORTF_MUX & ~(1<<11) & ~(1<<12);
Что подправить в настройке порта F.11?
Пробовал разные комбинации - не помогает.
|