Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-дек-17 05:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: как перенастроить PORD(PD0,PD1) под UART2
СообщениеДобавлено: 2016-апр-20 16:03 
Не в сети

Зарегистрирован: 2016-апр-20 15:02
Сообщения: 1
Микроконтроллер К1986ВЕ92QI, MDR32F9Q2I

Возникла надобность использовать UART2 на ножках PD0 - RX , PD1 - TX, по умолчанию данный порт используется для JTAG-B
Впечатление такое, что в самой библиотеке стоит проверка на использования этих ножек, то есть они зарезервированы под JTAGB.
Проверял уже на порту PORTB (PB0, PB1) - все работает, есть возможность переарентировать данные ножки микроконтроллера, хотя по умолчанию это JTAG-A.
Уже программировал специально через JTAG-A, все равно не получается поднять UART2 на ножках PD0 - RX , PD1 - TX
Подскажите где рыть. Вроде как понимаю, что в самой библиотеке, но где именно?

void Init(void){
/* Enables the HSI clock on PORTB,PORTD */
RST_CLK_PCLKcmd((RST_CLK_PCLK_RST_CLK |
RST_CLK_PCLK_UART1 |
RST_CLK_PCLK_UART2 |
RST_CLK_PCLK_PORTA |
RST_CLK_PCLK_PORTB |
RST_CLK_PCLK_PORTC |
RST_CLK_PCLK_PORTE |
RST_CLK_PCLK_PORTF),ENABLE);

//GPIO Init
PORT_InitStructure.PORT_PULL_UP = PORT_PULL_UP_OFF;
PORT_InitStructure.PORT_PULL_DOWN = PORT_PULL_DOWN_OFF;
PORT_InitStructure.PORT_PD_SHM = PORT_PD_SHM_OFF;
PORT_InitStructure.PORT_PD = PORT_PD_DRIVER;
PORT_InitStructure.PORT_GFEN = PORT_GFEN_OFF;
PORT_InitStructure.PORT_SPEED = PORT_SPEED_MAXFAST;
PORT_InitStructure.PORT_MODE = PORT_MODE_DIGITAL;


//PC1, PC0 - LED
PORT_InitStructure.PORT_Pin = (PORT_Pin_0 | PORT_Pin_1);
PORT_InitStructure.PORT_OE = PORT_OE_OUT;
PORT_Init(MDR_PORTC, &PORT_InitStructure);

//PF0 - UART2 RX
PORT_InitStructure.PORT_Pin = (PORT_Pin_0);
PORT_InitStructure.PORT_FUNC = PORT_FUNC_ALTER;
PORT_Init(MDR_PORTD, &PORT_InitStructure);
//PF1 - UART2 TX
PORT_InitStructure.PORT_Pin = (PORT_Pin_1);
PORT_InitStructure.PORT_OE = PORT_OE_OUT;
PORT_Init(MDR_PORTD, &PORT_InitStructure);

//UART1 RX (PA6)
PORT_InitStructure.PORT_Pin = (PORT_Pin_6);
PORT_InitStructure.PORT_FUNC = PORT_FUNC_OVERRID;
PORT_Init(MDR_PORTA, &PORT_InitStructure);
//UART1 TX (PA7)
PORT_InitStructure.PORT_Pin = (PORT_Pin_7);
PORT_InitStructure.PORT_OE = PORT_OE_OUT;
PORT_Init(MDR_PORTA, &PORT_InitStructure);


/* Init NVIC */
SCB->AIRCR = 0x05FA0000 | ((uint32_t)0x500);
SCB->VTOR = 0x08000000;
/* Disable all interrupt */
NVIC->ICPR[0] = 0xFFFFFFFF;
NVIC->ICER[0] = 0xFFFFFFFF;



//UART Init
UART_DeInit(MDR_UART2);
UART_DeInit(MDR_UART1);

UART_BRGInit(MDR_UART2, UART_HCLKdiv1);
UART_BRGInit(MDR_UART1, UART_HCLKdiv1);

UART_InitStructure.UART_BaudRate = 115200;
UART_InitStructure.UART_WordLength = UART_WordLength8b;
UART_InitStructure.UART_StopBits = UART_StopBits1;
UART_InitStructure.UART_Parity = UART_Parity_No;
UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_TXE | UART_HardwareFlowControl_RXE;

UART_Init(MDR_UART2, &UART_InitStructure);
NVIC_EnableIRQ(UART2_IRQn);
UART_ITConfig (MDR_UART2, UART_IT_RX, ENABLE);
UART_Cmd(MDR_UART2,ENABLE);

UART_Init(MDR_UART1, &UART_InitStructure);
NVIC_EnableIRQ(UART1_IRQn);
UART_ITConfig (MDR_UART1, UART_IT_RX, ENABLE);
UART_Cmd(MDR_UART1,ENABLE);

SysTick_Config(COUNTER_PRESCALER);
}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB