проблемы stm32 uart

348
05 апреля 2017, 16:32

Всем привет. Возникла небольшая проблема. Начал осваивать STM32. пытаюсь посылать символы по UART взял в качестве примера этот код:

#include "stm32f10x.h" 
void Init(void); //Объявление функции инициализации GPIOA и USART1
void Transmit(char); //Объявление функции передачи одиночного символа
int main()
{
  Init(); //Вызов функции инициализации
  while(1)
  {
    Transmit('S'); //Вызов  функции передачи одиночного символа
    Transmit('T');
    Transmit('M');
    Transmit('3');
    Transmit('2');
    Transmit('F');
    Transmit('1');
    Transmit('0');
    Transmit('3');
    Transmit('\r'); //Перевод позиции печати в крайнее левое положение
    Transmit('\n'); //Перевод позиции печати на новую строку
    for(uint32_t i=0; i<0x000FFFFF; i++); //Временная задержка
  }
}
void Init()
{
  //RCC
  RCC->APB2ENR |= (RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN); //Включаем тактирование GPIOA и USART1
  //GPIOA
  GPIOA->CRH |= (GPIO_CRH_CNF9_1 | GPIO_CRH_MODE9); //GPIOA - выход Push_Pull, альтернативная функция, скорость 50 МГц
  //USART1
  USART1->CR1 |= USART_CR1_UE; //Включаем USART1
  USART1->CR1 &= ~USART_CR1_M; //Размерность слова данных - 8 бит
  USART1->CR2 &= ~USART_CR2_STOP; //1 стоп-бит
  USART1->BRR = 0x34D; //Скорость обмена 9600 бод
  USART1->CR1 |= USART_CR1_TE; //Включаем передатчик USART1  
}
void Transmit(char data)
{
  while(!(USART1->SR & USART_SR_TC)); //Проверка завершения передачи предыдущих данных
  USART1->DR = data; //Передача данных
}

Компилируется без ошибок зашиваю в контроллер. На переходнике usb-uart слабо мигает светодиод. Т.е. что-то шлется. Но программа терминал на компе показывает, что ничего не приходит. Пытался смотреть через разные терминалы - одно и то же - ничего не приходит. Подскажите пожалуйста в чем может быть дело.

Answer 1

Вопрос снят, нужно было верно выставить скорость UART, она зависит от тактовой частоты.

READ ALSO
Натуральные числа, не делящиеся ни на один из квадратов простых чисел [требует правки]

Натуральные числа, не делящиеся ни на один из квадратов простых чисел [требует правки]

Нужно найти все натуральные числа, не делящиеся ни на один из квадратов простых чисел и не превышающие число N (1 <= N <= 10^9)

217
Как сделать пересекающиеся оси на d3.js?

Как сделать пересекающиеся оси на d3.js?

Добрый день! Создаю стандартные оси OX, OYВсе замечательно, но нулевая точка обозначается по каждой из осей, причем текст пересекается самой...

306
Подскажите конструкцию для функции

Подскажите конструкцию для функции

Начну с того, что у меня есть функционал для блогаВ нем есть article'ы

194
Как уловить остановку курсора?

Как уловить остановку курсора?

Друзья, мне необходимо сделать баннер, на котором при событии движения мыши (mousemove) двигаются некоторые объектыВся соль в том, что заказчику...

263