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

    

mihlit

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о mihlit

  • Звание
    Участник

Посетители профиля

43 просмотра профиля
  1. Переход с stm32f4 на stm32f7

    Есть плата WaveShare Core 7XXI. На плате камень STM32F746IGT6 и микросхема SDRAM. Решил попробовать запустить. Есть у меня программа работы с TFT дисплеем. Начиналась она с http://narodstream.ru/stm-urok-37-displej-tft-240x320-8bit-chast-1/, переделал в 16-разрядный интерфейс, прикрутил другой шрифт https://microtechnics.ru/stm32-i-lcd-rabota-s-graficheskim-displeem/- все работает (но не везде, это другая история) и под HAL, и под SPL и на STM32F103, вот ее и решил попробовать перенести на STM32F7. Но вместо приветствия от программы получил белый экран с серым квадратом посередине и все. Подскажите, есть какие то нюансы переноса с f4 на f7? Именно касательно F(S)MC. Спасибо. Завел сигнал сброса дисплея на пин МК (до этого сброс дисплея был на ножке nRST), картинка на дисплее поменялась. Значит FMC работает, нужно ковырять тайминги. При портировании на 103 серию программа сразу заработала, а на f7 нет - меня это и смутило.
  2. отладка в Keil

    Извиняйте за компанию
  3. отладка в Keil

    Задал вопрос в отдельной ветке - молчок. Буду спрашивать здесь. Передача данных от ADC в буфер по DMA. ADC_Config(); // ADC configuration ADC_SoftwareStartConv(ADC1); // Start ADC1 Software Conversion while (1) { while(!DMA_LISR_TCIF0) continue; //ждать заполнения буфера // обработка буфера } DMA в режиме Normal Первый цикл проходит - буфер заполнился. Смотрю RM0090 в разделе ADC 13.8.1 (перевод Google) "Чтобы восстановить ADC из состояния OVR, когда используется DMA, выполните следующие действия: 1. Повторно инициализировать DMA (настроить адрес назначения и счетчик NDTR) 2. Очистите бит ADV OVR в регистре ADC_SR 3. Запустите АЦП, чтобы начать преобразование." Выполнил первый пункт. Со вторым непонятки. Если в ADC установлен флаг CONT то флаг OVR не сбрасывается. При сбросе CONT флаг OVR может сброситься, но чаще - нет. То же самое с флагом STRT. Что не так делаю?
  4. Изменение примера из SPL 1.8 (ADC_DMA)

    В примере размер буфера = 1, мне же необходимо 1024. Хочу внести следующие изменения: Изменяю значение DMA_BufferSize = 1024; /* ADC configuration */ ADC_Config(); /* Start ADC Software Conversion */ ADC_SoftwareStartConv(ADCx); while (1) { 1. Ждать флаг TC DMA (окончание передачи) 2. Сброс EN в ADC (стоп ADC) 3. Обработка значений буфера 4. Выполнить 10.3.17 Stream configuration procedure из RM0090 5. ADC_SoftwareStartConv(ADCx); } Я правильно описал последовательность или что-то еще? Дело в том, что с отладкой в Keil я очень на "Вы" и у меня не всегда получается посмотреть значения переменных и т.п. :laughing:
  5. отладка в Keil

    Ест-но. В основном h-файлы из SPL, юзеровских ни разу не видел, вот сегодня "stm32f4xx.h". Поначалу очень нервничал, потом ничего привык - а у него болячка такая оказывается.
  6. отладка в Keil

    Дык в том то и дело, что стоит крест на, допустим, строчке #include "stm32f4xx.h" наводишь стрелку на крест - внизу экрана выводится - "фатальная ошибка: нет пути" но Keil то работает, т.е можно запустить компиляцию - выдает 0 ошибок, отладка тоже запускается и работает.
  7. отладка в Keil

    Не буду оспаривать очевидное. Небольшой нюанс - я к МК пришел через проектирование электроники на логических элементах малой степени интеграции, поэтому у меня в крови - знать и понимать что и как я делаю. Чувствую себя не комфортно, если не понимаю, как это действие выполняется.
  8. отладка в Keil

    Задам еще вопрос по Keil. У меня версия 5.23 (32Кб). Иногда при запуске Keil, теряется какой-то заголовочный файл. Лечится перезагрузкой Keil, но чаще приходится перезагружать Win7. Не смертельно, но иногда задалбывает. Кто- нибудь сталкивался с подобным?
  9. отладка в Keil

    Объяснюсь по поводу своего вопроса. 1. На просторах Интернета много раз встречал высказывания, что "магическое" число - это не есть хорошо. 2. ИМХО, работа через регистры более компактна и нагляднее чем применение библиотек. 3. Из п2. вытекает(для меня), что написание своих макросов и дефайнов не сокращает время долбания клавиатуры и не повышает читаемость кода.
  10. отладка в Keil

    GPIOA->AFRH = 0x50000000; Ассистент после -> предлагал только "AFR", если я вводил "AFRH", появлялся крест на строке "не объявлено uint32_t"
  11. отладка в Keil

    Смотрел я GPIO_PinAFConfig, но по своей неопытности предположил, что как-то по аналогии со 103 серией, без приведения к uint32_t и сдвигов можно обойтись. Спасибо за ответ, у меня код рабочий с SPL написан, но в целях самообразования попытался обойтись записью в регистры - не получилось.
  12. отладка в Keil

    Чтобы не плодить тем, спрошу здесь, кто-нибудь подскажите: Есть в GPIO регистр GPIOx_AFRH. Как в нем установить AFRH15[3:0] =5? Записать магическое число 0х50000000 или есть какой-то дефайн? Смотрел stm32f4xx.h, stm32f4_gpio.h - не нашел. Ткните-пните в нужном направлениию
  13. отладка в Keil

    Дважды смотрел вкладку, но искал установленные птички - поэтому и не увидел. Сброшена она. Ладно, спасибо всем, буду переделывать прошивку CPLD. Смущает только одно - всегда МК был мастером для периферии, а теперь что, по прерыванию обрабатывать прием данных, а если они сейчас не нужны? Ладно, разберусь. Еще раз всем спасибо.
  14. отладка в Keil

    Я примерно это и предполагал - поэтому и уже снова открыл Quartus. не очень разбираюсь в Кейле, искал в свойствах проекта, (волшебная палочка :biggrin: ) не нашел.
  15. отладка в Keil

    "Поэтому с большой долей вероятности обмен Ваш уже завершился с устройством и повторный обмен не предусмотрен - поэтому лог. 1 на линии больше никогда не будет." Действительно, сейчас внешнее устройство снимает сигал готовности, после передачи пакета данных. Получается, что я в режиме отладки не могу посмотреть данные в buf[]? Кнопки пошагового выполнения становятся неактивными - это "Зависает" или "не идет дальше"?