реклама на сайте
подробности

 
 
> Настройка ножки RX
Xeon
сообщение Oct 21 2012, 15:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Всем привет!) В общем на stm32f407 (discovery) пытаюсь зависти usart вот как делаю:

Код
void UsartInit(void)
{
    // enable USART2
    RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
    
    // enable GPIOA
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
    
    // configure GPIOA
    // for TX
    GPIOA->MODER |= GPIO_MODER_MODER2_1;
    GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR2_1;
    GPIOA->AFR[0] |= 0x00000700;
    // for RX
    GPIOA->MODER |= GPIO_MODER_MODER3_1;
    GPIOA->AFR[0] |= 0x00007000;
    
    // enable USART2 interrupts
    NVIC->ISER[1] |= 0x00000040;
    
    // configure usart
    USART2->BRR = 0x000002f0; // 56000 baud
    USART2->CR2 = USART_CR2_CLKEN;
    USART2->CR1 = USART_CR1_UE | USART_CR1_TE | USART_CR1_RE
        | USART_CR1_RXNEIE;
}


Результат следующий: проверял - при окончание передачи (TC) прерывание работает норм и байтики швырябтся в терминалку, эдакий спам... а вот когда с терменалки швыряю в проц, то ему пофиг, при этом я конечно отрубал прерывания по TC. Я грешу на то что както неправельно настраеваю сам порт RX... Подскажите плиз...

PS Всякие StdPeriph Driver не хочу использовать, так как на мой взгляд изучать контроллер нужно работая с регистрами напрямую, так больше граблей, а значит и пониманий... rolleyes.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016