Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июл 22, 2025 05:14:05

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8826 ]     ... , , , 211, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс июл 29, 2018 20:54:29 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
Понятно, спасибо.

Мой диагноз - как допилят 6-ю версию пусть позовут. А я как-нибудь на вменяемых компиляторах останусь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс июл 29, 2018 21:18:24 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
А вменяемые -- это какие? На сайте арма есть GCC 7. К кейлу я не стал его прикручивать, а как автономный компайлер через make мои исходники собирает без проблем. Я, правда, без плюсов пишу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс июл 29, 2018 21:49:17 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
GCC 7 - C++17
IAR - C++14 с элементами С++17


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт июл 31, 2018 04:47:41 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 7
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
VladislavS, для начало хотя бы ANSI C изучил. Тебе уже обьяснил что в С++ явное инстанцирование шаблона делается после реализации.

Реализация шаблонов должна быть определена в заголовочном файле, чтобы компилятор смог выполнить инстанцирование шаблона для любых аргументов, но можно скрыть реализацию, используя явное инстанцирование. В заголовочном файле при этом остаётся только объявление шаблонов, а реализация помещается в отдельный файл. Для всех возможных вариантов применения шаблонов в этом модуле выполняется явное инстанцирование

Изучай С++ и не умничай на форумах. Ты слушай что тебе люди говорят и не брызгай своей желчью.
И завязывай уже KEIL убогим называть. В голове проблемы у тебя.

Если компилятор додумал твоих тараканов и проглотил это не значит что ты сделал по стандарту.
Это ты еще MISRA C не юзал, там для тебя вообще полнейший АД будет. Более 500 правил.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт июл 31, 2018 07:34:18 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
Oxford , ты что, по всему интернету за мной гоняться будешь? Э как тебя штырит то :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт авг 02, 2018 19:41:16 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт дек 29, 2015 11:33:49
Сообщений: 56
Рейтинг сообщения: 0
Совершенно неожиданно столкнулся с проблемой, по всей видимости, настроек кейла. Перестал работать дебагинг. Создал новый проект, запускаю дебаг и... ничего. Указатель стоит на функции main() и дальше двигаться не желает:
СпойлерИзображение


Делаю сброс, после чего начинается начальная инициализация, которая останавливается на импорте SystemInit и далее так же не движется:
СпойлерИзображение


Уже глаз дергается, но понимания где косячу так и нет :dont_know:


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт авг 02, 2018 20:30:42 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
А проект собирается с отладочной информацией? Гляньте таб debug в опциях проекта.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт авг 02, 2018 20:56:28 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт дек 29, 2015 11:33:49
Сообщений: 56
Рейтинг сообщения: 0
Там я все на 10 раз перепроверил уже, в приложении скрин на всякий. Я вот еще что заметил, проблема не только в дебаге - проект собирается, благополучно отправляется в МК, но при этом загруженный в него код не исполняется. В режиме дебага руками потыкал регистры - реагирует адекватно, что случилось?


Вложения:
2018-08-02_23-55-19.png [33.04 KiB]
Скачиваний: 248
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт авг 02, 2018 21:33:44 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 178
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3377
Рейтинг сообщения: 0
На втором скрине видно что произошел переход в NMI_Handler.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 13:36:24 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 10
Зарегистрирован: Пн ноя 07, 2016 12:14:14
Сообщений: 134
Рейтинг сообщения: 0
Здравствуйте.
Настраиваю I2C с помощью HAL.
В main.c в глобальных переменных появляется
Код:
I2C_HandleTypeDef hi2c1;
для заполнения структуры.
Теперь мне нужно использовать hi2c1 в функциях для работы с периферией
Код:
HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);

HAL_I2C_Mem_Write(hi2c1, (uint16_t) (slave_adr<<1), (uint16_t) adxl_reg, I2C_MEMADD_SIZE_8BIT, adxl_data, datasize, (uint32_t)1000) {}//

Эти функции мне нужны в других .c файлах.
Сами функции видны, а вот на первый аргумент компилятор ругается

Я пиcала и в хедере и в .c файле, и без extern пробовала, но компилятор ругается
Код:
extern I2C_HandleTypeDef hi2c1;


Цитата:
error: #20: identifier "I2C_HandleTypeDef" is undefined
I2C_HandleTypeDef hi2c1;


Как быть?

В принципе неважно, HAL это или какая либо друга библиотека. Непонятно как "портировать" переменные структуры между модулями.

_________________
Я конечно все понимаю, но этого я не понимаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 13:39:38 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
у вас компилятор не видит типа I2C_HandleTypeDef, а не структуры hi2c1. вам надо там, где эта структура упоминается/используется (или указатель на неё) подключить соответствующий хедер из HAL, где выполнено описание этого типа

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 13:52:31 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 10
Зарегистрирован: Пн ноя 07, 2016 12:14:14
Сообщений: 134
Рейтинг сообщения: 0
Проблема "решилась" помещением функция R/W в main.c
Теперь они выглядят так:
Код:
void I2C1_WriteData(uint8_t slave_adr, uint8_t reg, uint8_t*data, uint16_t datasize){   
    uint8_t error_str[]={"I2C Error"};
    while(HAL_I2C_Mem_Write(&hi2c1, (uint16_t) (slave_adr<<1), (uint16_t) reg, I2C_MEMADD_SIZE_8BIT, data, datasize, (uint32_t)1000)!= HAL_OK){
        if (HAL_I2C_GetError(&hi2c1) == HAL_I2C_ERROR_AF){
            LCD_Clear(white);
            LCD_PutStr(0,0,error_str,red,white);
}}}
//----------//
void I2C1_ReadData(uint8_t slave_adr, uint8_t reg, uint8_t*data, uint16_t datasize){
    uint8_t error_str[]={"I2C Error"};
    while(HAL_I2C_Mem_Read(&hi2c1, (uint16_t) (slave_adr<<1), (uint16_t) reg, I2C_MEMADD_SIZE_8BIT, data, datasize, (uint32_t)1000)!= HAL_OK){ 
        if (HAL_I2C_GetError(&hi2c1) == HAL_I2C_ERROR_AF){
            LCD_Clear(white);
            LCD_PutStr(0,0,error_str,red,white);
}}}


А в других фалах эти функции прописываются с extern в хэдере.
Все работает, но мне бы все равно хотелось узнать есть ли альтернативное решение это проблемы со структурами.

Добавлено after 4 minutes 50 seconds:
Описание этого типа находится в "stm32f2xx_hal_i2c.h", который у меня подключен, иначе бы функции HAL_I2C_Mem_Read, HAL_I2C_Mem_Write не были бы видны, они описаны там же.

_________________
Я конечно все понимаю, но этого я не понимаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 13:55:42 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
bezzabotna писал(а):
Я пиcала и в хедере и в .c файле, и без extern пробовала, но компилятор ругается
Код:
extern I2C_HandleTypeDef hi2c1;
если он ругается на это, то именно в этом месте где-то выше по тексту и должен быть проинклюден stm32f2xx_hal_i2c.h - это так?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 14:05:35 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 10
Зарегистрирован: Пн ноя 07, 2016 12:14:14
Сообщений: 134
Рейтинг сообщения: 0
Да.
Пробовала подключать и напрямую
#include "stm32f2xx_hal_i2c.h"
и через
#include "stm32f2xx_hal.h"
Ошибки выдает.

_________________
Я конечно все понимаю, но этого я не понимаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 14:35:02 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
покажите весь проект, чего там куда понаписали.

навскидку так - хидер, в котором вы объявляете переменную, точно цепляется после HAL-овских?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 14:49:24 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 10
Зарегистрирован: Пн ноя 07, 2016 12:14:14
Сообщений: 134
Рейтинг сообщения: 0
Действительно в main.c было
#include "main.h"
#include "stm32f2xx_hal.h", а не наоборот.
Но на количество ошибок это не повлияло. В остальных файлах вроде в правильном порядке.


Вложения:
adxl345.c [1.96 KiB]
Скачиваний: 543
main.c [11.91 KiB]
Скачиваний: 340
main.h [3.48 KiB]
Скачиваний: 534
adxl345.h [873 байт]
Скачиваний: 506

_________________
Я конечно все понимаю, но этого я не понимаю.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 14:55:15 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
навскидку так - хидер,

Чуть глаз не вырвало. Может все-таки так?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 15:16:21 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 20
Рейтинг сообщений: 648
Зарегистрирован: Пт май 31, 2013 17:14:38
Сообщений: 2081
Откуда: Украина, Винница
Рейтинг сообщения: 0
А среда какая?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 15:23:42 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 10
Зарегистрирован: Пн ноя 07, 2016 12:14:14
Сообщений: 134
Рейтинг сообщения: 0
keil 5

_________________
Я конечно все понимаю, но этого я не понимаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 15:34:13 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
в main.h подцепите stm32f2xx_hal.h , иначе на момент объявления там переменной этот тип еще не описан

или нет. Чот запутался.

что происходит: при попытке компиляции файла adxl345.c с раскомментированными в adxl345.h строчками с extern I2C_HandleTypeDef hi2c1, ADXL_WriteData и ADXL_ReadData оно не может найти тип I2C_HandleTypeDef?

в stm32f2xx_hal_conf.h раскомментировано #define HAL_I2C_MODULE_ENABLED?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8826 ]     ... , , , 211, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y