Перейти к содержанию

Дмитрий25

Members
  • Постов

    11
  • Зарегистрирован

  • Посещение

Информация о Дмитрий25

  • День рождения 19.03.1987

Информация

  • Пол
    Мужчина
  • Город
    Москва

Электроника

  • Стаж в электронике
    3-5 лет

Достижения Дмитрий25

Новичок

Новичок (1/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

-1

Репутация

  1. Если вы видите, что в коде все верно, напишите, пожалуйста, что "В коде ошибок не видно"! Может дело в отладке, попробую другой usart задействовать! Задачка для программистов-не новичков, я думаю, простейшая! Столько просмотров уже, и при одном взгляде на код у них складывается мнение: верен он или нет! Спасибо!
  2. Если, что-то не так в коде написано или чего-то в коде не хватает, прошу скажите! Я как раз для этого и написал на этом сайте, чтобы опытные программисты подсказали. Если вы видите по коду, что байт только один раз передастся, объясните, пожалуйста, почему! Я написал Whie(1)- как я понял, цикл будет крутиться бесконечно долго. В цикле есть проверка флага конца передачи "while(!(USART2->SR & USART_SR_TC))" и запись передаваемого байта в регистр usart " USART2->DR=0xAB". Все настроено по reference manual, как я его понял,. Я не понимаю, что не так! Спасибо!
  3. На отладке голубой и красный светодиоды мигают попеременно непрерывно, получается в бесконечном цикле проверяется флаг конца передачи и после передается байт с выхода ра2! На осциллографе я должен увидеть байты с интервалом между ними!
  4. Всем привет! Я новичок в разработке кода для STM32! Но очень хочу освоить это направление! Купил вчера отладку с STM32F407VG в магазине "Чип и Дип", Разработал код по передаче байта с выхода USART2_TX (pa2). Код такой: #include "stm32f4xx.h" int main(void) { uint32_t i; RCC->CR |= RCC_CR_HSION; //Включаем тактовый генератор HSI while(!(RCC_CR_HSIRDY)); //Ждем его стабилизации RCC->AHB1ENR=0x0000000f;//vkl port A-D GPIOA->MODER=0xA80000A0;//pin2,3=AF (usart2) GPIOD->MODER=0x55000000;//4 led GPIOA->AFR[1]=0x00000700;//pin2,3=usart2 GPIOA->OSPEEDR=0x00000050;//25MHz //nastr usart2 RCC->APB1ENR |= RCC_APB1ENR_USART2EN; USART2->BRR=0x683;//9600, 16MHz,over8=0,oversamp by 16 USART2->CR1|=0x2008;//US,TX=EN while(1) { for (i=0;i<200000;i++) { GPIOD->ODR=0x8000;//blue led } while(!(USART2->SR & USART_SR_TC)); USART2->DR=0xAB; for (i=0;i<200000;i++) { GPIOD->ODR=0x4000;//red led } } } В итоге светодиоды мигают, но на выводе РА2 (смотрел осциллографом) байт отсутствует, напряжение равно 0 В. Подскажите, плиз, где в коде ошибка! Спасибо!
×
×
  • Создать...