Jump to content

IgnatiusF

Members
  • Content Count

    52
  • Joined

  • Last visited

Community Reputation

2 Обычный

About IgnatiusF

  • Rank
    Осваивающийся

Информация

  • Город
    Иркутск

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    микроконтроллеры
  • Оборудование
    Мультиметр - M-832
    Паяльник 40Вт

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Да все работает уже, даже как надо, без глюков и прочих приколов. Регистры вернул в прежнее состояние, то есть в то, которое сам выставлял. Байты идут в обе стороны, прерывания работают, тактирование тактирует исправно. 20 МГц, МК F107, а не 103. То есть почти вся "неработа" заключалась в не настроенном переходнике MOXA usb - rs-485
  2. Мозг мой из соломы, uPort 1150 еще и настраивается. А я, блин, все это время сидел с обычным rs-232 и воображал, что это rs-485 4w.
  3. Ну вот и опять не работает Прерывание приема работает очень странно. Если присылать данные - то прерывание не вылазит, а если сделать простое подключение через терминал, то есть нажать кнопочку "Connect", то прерывание срабатывает, и выплевывает в терминал 0. Помогите пожалуйста, столько нервов убил, а результат все тот же. Пробовал RX настраивать на floating, pull-up и pull-down, все равно одно и тоже Еще странность какая-то с MOXA uport 1150. Подключал по мануалу, TX+ к RX+, RX- к TX- и так далее, однако пришлось в итоге подключать с точностью до наоборот, TX к TX, минус к плюсу, и только тогда прием работает.
  4. Содрал временно состояния этих регистров: RCC->CR = 0x30035A83; USART2->CR1 = 0x0000200C; RCC->CFGR = 0x04000005; Работает.
  5. Бодрейт HAL'ом ставится такой же. Попробую завтра на SPL запустить. Посмотрим, что выйдет. RCC_CR все таки прочитался, значения тоже завтра проанализирую. А сейчас скопировал значение регистра с HAL в мой пример - фига. Однако, если кому понадобится, вот такие значения получились: 0x30035A83 или 0b0011.0000.0000.0011.0101.1010.1000.0011.
  6. STM32F107RCT6. Из "анализаторов" лишь терминал и светодиоды. Иного не дано. Тактирование стабильное, если про железо, проблема, возможно, в его конфигурации, ведь с HAL проблем нет. Отладчик тоже нема - только: Бедненько, да. А разве не надо еще на 16 делить?
  7. Ой, ахаха, простите, смотрю в книгу, вижу...: Кстати, почему-то регистр RCC->CR у меня содержит все нули, проверяю вот так: str[8] = RCC->CR>>24; str[9] = RCC->CR>>16; str[10] = RCC->CR>>8; str[11] = RCC->CR; HAL_UART_Transmit(&huart2,str,12,0xFFF); Не может же такого быть, верно?
  8. Вот только вся проблема в том, что писать в регистры я вполне умею, но все равно что-то идет не так. Хотел посмотреть что HAL выставляет в BRR, однако, судя по дадашиту, чтение этого регистра запрещено. А очень жаль( А вот в SPL я не заглядывал еще. Надеюсь, увижу там что ищу
  9. Простите за откровенное вранье с моей стороны, быстро собирался перед написанием поста и кое-что подкорректировал. Запускаю я не USART1, а USART2, и для него не расписано прерывание, поэтому перед отправкой откорретировал вопрос. А так прерывание работает, оказывается. Однако работа все равно идет странным образом. UART1, подключенный через USBtoTTL на клоке 20 МГц при посылке сплошных единиц результат такой: (E0 F0 F0 E0 E0 E0 F0 F0 F8 F8 E0 F0 E0 E0 F0 F0 F0). Возможно это помехи, идут одним двухжильным проводом. Однако всего-то 10 см с пайкой. Через UART2, подключенный через MOXA по RS-485 (4w), при посылке сплошных единиц идет: (FE FE FE FE FE FE)
  10. Насколько я знаю, это не обязательно, они же и так разрешены, не верно? SysTick тикает и без этого. В любом случае самое важное - бодрейт и тактирование, с ними реально что-то не так. По UART идет совсем не то, что нужно, точно не помехи и пр. т.к. это подключается вообще через MOXA по RS-485 и работает с HAL. При включении битов SW в 01 (HSE SysCLK) UART вообще ничего кроме нулей не отправляет
  11. Не удается проинициализировать работу UART2 на скорость 19200 бод. Не вызывается прервание совсем, отсылаются постоянно нули на всех скоростях, если ставить System clock switch в 01 (HSE). При работе от RC генератора выдает уже просто не то, что нужно. Кварц рабочий, и вообще все работает, при использовании библиотек HAL. SysTick выключил потому, что были подозрения на конлфикт приоритетов. Внизу представлена именно та часть кода программы, которая не работает, то есть сам UART. Проект скоро сдавать, а использовать готовую библиотеку HAL не хочется совсем, уже несколько дней парюсь и не могу найти проблему. Попробовал разобраться что пишет в регистры HAL, однако не смог т.к. не хватает знаний, значения регистров все такие же, кроме PLL (не используется) и RCC_CR1 (в HAL почему-то полностью равен 0). Проверял передачей данных по UART. Регистр BRR не удалось считать т.к. он только для записи. У меня записано так: USART1->BRR = 0x412; //20MHz/16/19200 = 65,104. Где искать следует ошибку?
  12. Не могли бы вы, люди добрые, объяснить отличия четырех-проводного RS-485 и RS-422? Можно ли к одному четырех-проводному RS-485 подключить множество устройств приемопередатчиков? Заказал в интернет-магазине микросхему ADM488ARZ, в ДШ описывается как "Full-Duplex, Low-Power, Slew Rate Limited, EIA RS-485 Transceivers". Является ли эта микросхема полноценным четырех-проводным RS-485 приемопередатчиком с возможностью подключения нескольких устройств, или под дуплексным режимом понимается использование RS-422?
  13. Oxford, вот тут вы зря. У меня данный проект уже полностью готов на микроконтроллере от Atmel, и вопрос состоит в том, чтобы перенести его на более продвинутый STM32. Что до отладки, мне уже предложили воспользоваться отладочной платой с STM32 для отладки программы, пока печатная плата устройства будет ехать их Китая.
  14. Вот с этим - то и проблема, он еще не приехал)
  15. Судя по тому, что я понял - работать с этим битом требуется только при использовании самописного бутлоадера, а при использовании аппаратного он выставляется автоматически?
×
×
  • Create New...