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

seniorandre

Свой
  • Постов

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

  • Посещение

Весь контент seniorandre


  1. stm32cube + RTOS + UART

    Вы может детально не разбирались, да и ни кто не спорит что написано хорошо, но воспользоваться этим очень проблематично. Если бы входящие данные были бинарными или стандартной длиной, то все кашироно. А если на вход идут текстовые команды разной длины, то события на обработку символа или конца команды нет, приходится ставить длину буфера = 1 и уже самому обрабатывать, но это костыль. Зачем тогда драйвер нужен. А прерывание при этом занято уже самим драйвером. А уже с Freertos связать это дело десятое. Кстати на Rtos примеров можно сказать нет.
  2. stm32cube + RTOS + UART

    Ну это чудо я тоже видел( (USE_RTOS == 1) ), а про буфер =1 я даже заикаться не стал, т.к. зачем этот драйвер и буфер вообще нужен. Когда я тестил, у меня вообще Rtos не запустился, т.к. в конфиге не привязали SysTick. Порадовало только одно, можно использовать весь синтаксис от FreeRtos и не заморачиваться на новом синтаксисе, т.к. возможности FreeRtos они там уменьшили, это видно если сравнить определения. классов и функций. Ну и доки можно сказать нет на новые определения, поэтому я вопрос закрыл пока. Либо надо придумывать как правильно работать с USART, а то получается что идеология идет от mbed где с DMA можно работать только через задний проход.
  3. stm32cube + RTOS + UART

    Месяц назад занимался тем же самым, единственное что нашел, что у USART есть два callback, которые как в DMA IRQ вызываются на половину заполненности буфера или всего буфера. Так и не понял как отлавливать символ окончания команды, которую я отправляю по USART, т.к. теперь вроде прерывание занято обработчиком этих callback. Так и плюнул и вернулся к CMSIS. Может действительно у кого нибудь есть пример нормальный как правильно работать с последовательным портом с использованием FREERTOS, а то бред какой-то получается. В цикле опрашивать порт как в демо, не наш метод, да и получить событие когда пол буфера заполнено, нафига?
  4. Плата NUCLEO: comm port

    Ну может банально тактовую частоту не проинициализировали, может не обратили внимание что тактовая с STLINK идет (8 MHz). Кстати у меня две нуклеи и у одной тактовая идет от ST-LINK, а на второй кварц стоит. Дайте больше инфы, код и т.п. Я ведь не телепат, чего вы там намудрили. Кстати если на F4 не работает USART, но аппаратно сигналы видны, то это первый признак что неправильно проинициализирована тактовая частота ядра. На младших моделях по умолчанию ядро работает на нормальной частоте сразу, но от внутреннего генератора, а на F4 по умолчанию от внутреннего генератора ядро работает на низкой частоте. Я так понимаю что большое кол-во народа работает от внутреннего генератора и искренне верят что работают от кварца.
  5. Плата NUCLEO: comm port

    У меня Nucleo F072, все прекрасно работает, надо просто в доке найти какой USART вешается STLINK, ну и сконфигурировать его в STM. На моей висит вот так: // USART user define rules #define USARTx USART2 #define USARTx_PORT GPIOA #define USARTx_PORT_CLK RCC_AHBPeriph_GPIOA #define USARTx_CLK RCC_APB1Periph_USART2 #define USARTx_RX_PIN GPIO_Pin_3 #define USARTx_RX_PIN_SRC GPIO_PinSource3 #define USARTx_TX_PIN GPIO_Pin_2 #define USARTx_TX_PIN_SRC GPIO_PinSource2 А так, удобнее я еще ни чего не видел. Я правда с терминалом работаю через RealTerm
  6. Осталось теперь убедиться что этот код вызывается, т.к. иногда инициализация клока вызывается из startup.c, иногда надо явно вызвать в main. C IAR не работал, не могу сказать, все от реализации начальной загрузки зависит. Самый простой путь это поставить точку останова в нем и убедиться что он все таки отрабатывает. А так вроде все правильно.
  7. Когда принимается по USART не то, то это скорее всего проблема настройки тактирования, но у Вас вроде библиотека HAL, и если вы генерили тактирование в CubeMx, то ошибиться трудно. Чем генерили код настройки тактирования и где он? Ну и соотв что за чип, кварц и т.п.? Я когда веселился с этим смотрел осцилом с анализатором USART, поэтому быстро понял что ядро не на той частоте работает. Вам в качестве теста можно вывести на какой нибудь вывод тактирование или сигнал с таймера и проверить частоту. Успехов.
  8. Да облажался я с гуглом, ZIP ни когда не выкладывал. В общем переименовал файл, что бы он просмотрщики не предлагал. А без зипа тоже не хочет, говорит небезопасный файл :)
  9. FreeRtos .chm 8.1.2

    Может кому пригодится, пришлось пару дней повозиться, а то как то скучно в кокосе поиск сделан. Пока запал еще не остыл, предложения по доделке принимаются. FreeRtos .chm 8.1.2
  10. А если подумать в сторону Антенны? Лучший усилитель - это антенна, но это уже не относится к данному форуму.
  11. Отношение сигнал/шум при усилении только падает и улучшить его затем уже нельзя. Для выделения полезного сигнала при большом уровне шума используют специальные сигналы (в РЛС) или специальные виды модуляции (QPSK and etc), которые устойчивы к помехам (шуму), ваш случай непонятен? А усилить можно хоть на 100дб :)
  12. Во времена моей молодости это делали варикапами :), можно еще pin диодами попробовать. Смотря какая задача?
×
×
  • Создать...