STM32F411RE UART не работает с отладчиком IAR - PullRequest
0 голосов
/ 07 февраля 2020

В настоящее время я учусь работать с stm32f411re. Я использую PA9 / 10 в качестве TX и RX со скоростью передачи 9600 и 1 стартовое 8-битное слово и 1 стоп без четности. Я подключил PA9 / PA10 с FTDI к своему P C, и я пытаюсь отправить с последовательного терминала. Попытка сделать это с прерываниями. Как я вижу из отладчика, он входит в ISR, но повторяет неправильные символы. 16 МГц R C осциллятор был использован в качестве clk. Нет прескалеров. Дискретизация по умолчанию (16). Спасибо за ваше время

#include "stm32f4xx.h"
#include "system_stm32f4xx.h"
#define DELAY 0xFFFFFFFF
#define SEK 16000000
void USART1_IRQHandler  (void) ;
int main() {
  RCC->AHB1ENR|=(1<<0); //GPIOA
  RCC->APB2ENR|=(1<<4); // Clock za USART1
  GPIOA->MODER|=(1<<10);
  GPIOA->MODER|=0x3;
  GPIOA->MODER|=0x280000; //PA9 I PA10 ALTERNATIVE MODE
  GPIOA->AFR[1]|=0x770; //0111 AF07 
  USART1->CR1|=(1<<13); //enable usart
  USART1->BRR=0x683; //9600
  USART1->CR1|=((1<<3) | (1<<2)); //TX I RX ENABLE 
  USART1->CR1|=(1<<5); //ENABLE USART INTERRUPT RECEIVE

__NVIC_EnableIRQ( USART1_IRQn );
   USART1->DR='a';

  while(1){

   }


return 0;
} 

void USART1_IRQHandler  (void) 
{
    char c;
    c=USART1->DR;
    USART1->DR=c;
}

...