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

tea1975

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник
  1. Спасибо! Поставил прототип и вуаля - температура в норме. Пипец, не зря про Си и плюсы говорят, что выстрелить себе в ногу очень просто..
  2. 1. STM32L476RG 2. Вроде как есть, но я не думаю что в этом проблема, я так понимаю, просто если нет FPU, то просто получу код побольше размером. Не матрицы в конце концов считаю. 3. пробовал и нулевой и 4ый, на нулевом только предупреждения все пропадают, но результат тот же. 4. Да вот никак с отладчиком не разберусь, в whatch переменные добавил, но значения отображаются только на части из них. Загуглил, вроде как пишуть у кейла есть такой косяк, надо переменные глобальными назначать, тогда он их нормально отображает в отладчике
  3. Странно, копировал прямо из урока, там >> а сюда так вставилось
  4. Странно, в коде урока ни одна функция не имеет прототипа, а ругается только на эту. Да и в цело код то работает, только на этом месте трабл случился. Дальше пока не иду, т.к. надо понять, почему вместо 22,34 градуса выводится 2234. Почему деление на сотню не отрабатывает. Причём в дебагере складывается ощущение, что он вообще строчку с делением пропускает. Пробовал ставить деление сразу в строку выше, результат тот же: temper_float = ((temper_int * 5 + 128) >> 8) / 100.0f
  5. Не хочу заводить новую тему, если никто не против, пусть эта тема будет моей темой с вопросами, пока я буду осваивать (или пока меня хватит). Следующий вопрос явно связан либо с синтаксисом Си (хотя не вижу особых затыков) либо с настройкой компилятора, которую я в МДК вообще не трогаю пока. Итак... Осваиваю вывод с датчика ВМЕ280 информации в UART (пока). Функция содрана из уроков. Задал этот вопрос и там, но автор не часто видимо просматривает комментарии, а у меня аж чешется от нерешённой проблемы: Можете прояснить, почему у меня не отрабатывает в функции закомментированная строка? float BME280_ReadTemperature(void) { float temper_float = 0.0f; uint32_t temper_raw; int32_t val1, val2; BME280_ReadReg_BE_U24(BME280_REGISTER_TEMPDATA,&temper_raw); temper_raw >>= 4; val1 = ((((temper_raw>>3) — ((int32_t)CalibData.dig_T1 <> 11; val2 = (((((temper_raw>>4) — ((int32_t)CalibData.dig_T1)) * ((temper_raw>>4) — ((int32_t)CalibData.dig_T1))) >> 12) * ((int32_t)CalibData.dig_T3)) >> 14; temper_int = val1 + val2; temper_float = ((temper_int * 5 + 128) >> 8); //temper_float = temper_float/100.0f; return temper_float; } т.е. и при отсутствии комментирующих слэшей и с ними результат в терминале температура умноженная на 100. Причем в main.c напротив вызова этой функции стоит предупреждение: implicit declaration of function 'BME280_ReadTemperature' is invalid in C99. Если в настройках во вкладке С/С++ убрать галочку с «C99 mode», то компилируется вообще с кучей ошибок..
  6. Благодарю всех за хорошие советы и ссылки
  7. Странная логика. Читая интернеты я так понял наоборот, что HAL и Куб созданы чуть ли не для ардуинщиков (слава богу в их ряды я не попал). И по сути у меня в итоге получилось. За пару дней по урокам с одного ресурса помигал светодиодом, нучился включать его при нажатой кнопке и выключать при отжатой, с прерываниями и без онных. Я конечно согласен, что делая это я не познаю регистровую структуру камня, но быстрый старт вроде бы состоялся. затык был только на названии темы, но теперь я знаю как его лечить. В лохматые годы я программировал немного АВРки в ИАРе на регистрах. Потому что не было ничего подобного ХАЛу. Но и не согласиться с вами не могу. Думаю, что поиграюсь с этими штучками типа облегчающими жизнь и прийду на голый CMSIS. Плавно, спускаясь через LL наверное. Плохо, что литературы на русском по архитектуре кортексов маловато, а с инглишом я дружу увы на уровне - по пьяни поболтать с тайцем в таиланде - полное понимание. Я знаю, щас закидаете советами, что в Embeded без знания английского ловить нефиг и т.д. Ну так уж сложилось. У меня это больше хобби таки. Попробовал параллельно работать и в MDK и в Атолик. Атолик выглядит интереснее, но понимаю, что Кейл то более для профи и наверно стоит сразу привыкать к правильному инструменту. Ещё вопрос к гуру. Нет ли описаний где-то как пользоваться дебагером в Кейле? Методом тыка осваивать?
  8. Спасибо за помощь, так и не понял какого художника Репина систем появляется и в Device и в CMSIS, но грохнул его в последнем и откомпилился без ошибок и предупреждений. Не ожидал таких граблей для начинающих юзеров. Представляюю какие дальше ёлки падать под ноги будут. Может на Атолик пока не поздно сбежать, и честность не пострадает Это да, пугает зачем столько лишнего то куб в папки проекта наваливает, например хидеры на все камни L4
  9. Ага увидел, только не пойму как так получилось. Попробую заново с нуля. Надо отладить процедуру создания столь минималистского проекта..
  10. чудеса.. ещё раз попробовал поставить галки как на скрине и всё вышло норм
  11. Вы имеете ввиду так как на вложенном скрине? Если делаю так как на скрине, то результат ещё хуже: *** Using Compiler 'V5.06 update 5 (build 528)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'Blink_hal' linking... Blink_hal\Blink_hal.axf: Error: L6200E: Symbol SystemInit multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol __asm___18_system_stm32l4xx_c_5d646a67____REV16 multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol __asm___18_system_stm32l4xx_c_5d646a67____REVSH multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol __asm___18_system_stm32l4xx_c_5d646a67____RRX multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol AHBPrescTable multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol APBPrescTable multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol MSIRangeTable multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol SystemCoreClock multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Blink_hal\Blink_hal.axf: Error: L6200E: Symbol SystemCoreClockUpdate multiply defined (by system_stm32l4xx_1.o and system_stm32l4xx.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 9 error messages. "Blink_hal\Blink_hal.axf" - 9 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:00
  12. Keil MDK-ARM ошибка: L6236E

    Добрый день, гуру и другие заинтересованные люди. Решил тут осваивать чудо чудное микроконтроллеры аки зовутся STM32. Да не просто решил, а даже начал.. Прикупил плату NUCLEO-L476RG. Помигал даже светодиодиком в Mbed по описанию на Хабре. Но этож не наш метод. Гуру рекомендуют Кейл и мы их будем слушаться. Сформировал в Кубе проект по уроку на одном из ресурсов. Из Куба сразу запускаю его в Кейле, добавляю строчки мигалки в main.c и F7 волшебную давлю. А линковщик Кейла не хочет новичка на лоховской задачке принимать, дескать достали вы тут своими светодиодами мигать. Нет чтобы сразу БПФ начинать. Ну вобщем выдал он : Blink_hal\Blink_hal.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST. Чукча не дурак, чукча гугл знает и находит вот такую информацию. В которой как бы намекают, что в стартуп файле нет строчек: AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD 0 ; Reserved Дальше чукча-новичок смотрит в файл C:\Users\Евгений\Documents\Test\Blink_hal\MDK-ARM\startup_stm32l476xx.s и они там есть.. Чукча несчастен, светодиоды простаивают.. А теперь вопрос. Что не так в этой жизни с Кейлом? На всякий случай приложу папку Src и файл startup_stm32l476xx.s проекта, вдруг люди добрые возьмутся помочь чукче освоить Кейл Src.rar startup_stm32l476xx.s
  13. Появилась не плохая книга по Verilog http://turbobit.net/uodzlluz7jvp/Verilog_H...__2018.rar.html
  14. Да я вобщем то так и делал - крест накрест
  15. Проверил осциллографом, с Тх посылки идут, Rx не реагирует. Соединил Тх с Rx USB - UART TTL адаптера, отправка работает, приём нет :(
×
×
  • Создать...