Миландр

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

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




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Проблемы с работой UART1
СообщениеДобавлено: 2016-май-07 09:57 
Не в сети

Зарегистрирован: 2016-май-07 09:49
Сообщения: 22
Откуда: Саратов
Здравствуйте!
Не могу организовать прием-передачу по UART1. Код взял из примера, поставляемого из библиотеки:
Код:
#include <stdint.h>
#include "MDR32F9Qx/inc/MDR32Fx.h"
#include "MDR32F9Qx_uart.h"
#include "MDR32F9Qx_rst_clk.h"
#include <K4000/Common/UART.h>

void InitUART232(void) {
   static PORT_InitTypeDef   PORTInit;
   static UART_InitTypeDef   UARTInit;

   //включаем такстирование порта
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTA, ENABLE);
   //заполняем структуру инициализации порта
   PORT_StructInit(&PORTInit);
   PORTInit.PORT_PULL_UP   = PORT_PULL_UP_OFF;
   PORTInit.PORT_PULL_DOWN   = PORT_PULL_DOWN_OFF;
   PORTInit.PORT_PD_SHM   = PORT_PD_SHM_OFF;
   PORTInit.PORT_PD      = PORT_PD_DRIVER;
   PORTInit.PORT_GFEN      = PORT_GFEN_OFF;
   PORTInit.PORT_FUNC      = PORT_FUNC_OVERRID;
   PORTInit.PORT_SPEED      = PORT_SPEED_MAXFAST;
   PORTInit.PORT_MODE      = PORT_MODE_DIGITAL;
   //определяем 7-ю ножку для выхода (UART1_TX) и инициализируем порт
   PORTInit.PORT_OE      = PORT_OE_OUT;
   PORTInit.PORT_Pin      = PORT_Pin_7;
   PORT_Init(MDR_PORTA, &PORTInit);
   //определяем 6-ю ножку для входа (UART1_RX) и инициализируем порт
   /*PORTInit.PORT_OE      = PORT_OE_IN;
   PORTInit.PORT_Pin      = PORT_Pin_6;
   PORT_Init(MDR_PORTA, &PORTInit);*/

   /* Select HSI/2 as CPU_CLK source*/
   RST_CLK_CPU_PLLconfig(RST_CLK_CPU_PLLsrcHSIdiv2, 0);

   /* Enables the CPU_CLK clock on UART1,UART2 */
   RST_CLK_PCLKcmd(RST_CLK_PCLK_UART1, ENABLE);

   /* Set the HCLK division factor = 1 for UART1,UART2*/
   UART_BRGInit(MDR_UART1, UART_HCLKdiv1);
   //заполняем структуру инициализации
   UART_StructInit(&UARTInit);
   UARTInit.UART_BaudRate            = 115200;
   UARTInit.UART_FIFOMode            = UART_FIFO_OFF;
   UARTInit.UART_HardwareFlowControl   = UART_HardwareFlowControl_RXE | UART_HardwareFlowControl_TXE;
   UARTInit.UART_Parity            = UART_Parity_No;
   UARTInit.UART_StopBits            = UART_StopBits1;
   UARTInit.UART_WordLength         = UART_WordLength8b;
   //инициализируем порт
   UART_Init(MDR_UART1, &UARTInit);

   //включаем UART
   UART_Cmd(MDR_UART1, ENABLE);
}


Самое интересное: если настраиваю прием-передачу - контроллер виснет. Если настраиваю только передачу - все работает, но данные не передаются. Помогите, пожалуйста, разобраться.


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

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


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

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


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

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