Страница 5 из 73
Re: Stm32 с чего начать изучение...
Добавлено: Чт авг 11, 2016 15:14:32
Мурик
СЦБист писал(а):STM8 по скорости вроде выше.атмела
У них примерно равная производительность (инструкция за такт). Но для AVR гораздо шире выбор компиляторов и намного больше документации и примеров.
Re: Stm32 с чего начать изучение...
Добавлено: Чт авг 11, 2016 22:10:32
dosikus
Мурик, как можно советовать другим если сам плаваешь?
Keil для F0 бесплатен.
STM8 имеет периферию сходную с STM32 и рвет и пЫк и авр как тузик грелку.
И SPL и калокуб только для любителей аурдуньи, для вменяемой разработки мало пригодны.
Ембитс туда же.
Re: Stm32 с чего начать изучение...
Добавлено: Чт авг 11, 2016 22:34:30
Мурик
dosikus писал(а):Keil для F0 бесплатен.
F0 это не единственное семейство среди МК STM32. Для других или пиратить или покупать, если размер прошивки будет превышать 32 КБ.
dosikus писал(а):STM8 имеет периферию сходную с STM32 и рвет и пЫк и авр как тузик грелку.
Я писал что-то про периферию?

Начинка это хорошо, но у AVR и PIC намного больше выбор компиляторов и количество примеров и статей. Об этом я писал.
А преимущества перед AVR и PIC сомнительны. Тогда уж лучше взять STM32 вместо STM8.
dosikus писал(а):И SPL и калокуб только для любителей аурдуньи, для вменяемой разработки мало пригодны.
Кому что больше нравится.

Поначалу когда еще совсем котенок в STM32 проще работать с библиотеками чем с регистрами. Это когда "вырастаешь" и становишься матерым котярой в STM32 уже можно без напряга программить манипулируя регистрами.

Re: Stm32 с чего начать изучение...
Добавлено: Чт авг 11, 2016 22:58:54
dosikus
Мурик писал(а):Я писал что-то про периферию?

То то и оно.
Значит не осознаешь в чем преимущества.
Количество компиляторов весьма сомнительное преимущество, тем более что вменяемых из них крайне мало.
Для пЫк xc8 , для авр IAR .
А F0 лучше всего для перехода с 8ми биток...
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 10:27:38
Мурик
dosikus писал(а):Для пЫк xc8 , для авр IAR .
Компиляторов ЯВУ для PIC и AVR гораздо больше. Это не только сишные компили, но и всякие паскали, бейсики и т. д. по несколько разновидностей. STM8 может таким похвастаться? Процитирую вас-же.
dosikus писал(а):То то и оно.
dosikus писал(а):Значит не осознаешь в чем преимущества.
Не вижу преимуществ по сравнению с STM32. Если начинать изучать новые МК, то лучше 32-ух битные ARM, чем очередные 8-ми битные STM8. Стоимость STM8 и STM32 незначительно отличается, а плюшек у последних больше.

Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 10:54:35
scorpi_0n
Мурик писал(а):Компиляторов ЯВУ для PIC и AVR гораздо больше. Это не только сишные компили, но и всякие паскали, бейсики и т. д. по несколько разновидностей. STM8 может таким похвастаться?
А оно для STM8 и не нужно. Для тех кто хочет освоить STM8 и ИАРа хватит, а всё вышеперечисленное уродство пусть идёт лесом, давно уже пора.
Не вижу преимуществ по сравнению с STM32. Если начинать изучать новые МК, то лучше 32-ух битные ARM, чем очередные 8-ми битные STM8. Стоимость STM8 и STM32 незначительно отличается, а плюшек у последних больше.

В общем оно так. Но если задача совсем простая, то почему бы и не STM8S003F3?
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 11:23:49
СЦБист
Мурзик не могу понять что тут лучше выбрать для начинающего ?
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 11:35:19
Мурик
scorpi_0n писал(а):Для тех кто хочет освоить STM8 и ИАРа хватит, а всё вышеперечисленное уродство пусть идёт лесом
Лучше пусть STM8 идет лесом...
scorpi_0n писал(а):Но если задача совсем простая, то почему бы и не STM8S003F3?
Целесообразно наверное при крупносерийном производстве для удешевления разработки на несколько центов.

А при единичных экземплярах, с тем же успехом можно использовать STM32F030F4P6.
В Китае партии из 10 штук STM8S003F3 и STM32F030F4P6 стоят примерно одинаково. Тем более пусть STM8 идет лесом!
СЦБист писал(а):не могу понять что тут лучше выбрать для начинающего ?
IDE спрашивает нужно ли ассоциировать сишные файлы с ней. Это необязательно и от этого можно отказаться, т. е. оставить выбор как есть сейчас в окне.
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 11:36:56
СЦБист
как начинающему можно оставить как есть ?
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 11:43:44
Мурик
Разница от выбора в том окне будет в запуске EmBitz при клике по *.h, *.c, *.cpp и др. файлам в проводнике или они будут открываться в другой программе. Смысла ассоциировать сишные файлы с EmBitz почти нет, т. к. все равно нужно открывать файл проекта. А из проекта можно открыть все необходимы сишные файлы.
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 11:55:29
СЦБист
получили это окно.
что жимаем дальше.
спасибо !
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 12:21:15
Мурик
Английский вообще не знаете? Тогда установите русификатор (ссылка выше).
Среда предлагает создать новый проект (слева) или открыть существующий (справа).
Создание проекта в картинках.
https://habrahabr.ru/post/191624/
http://purebasic.mybb.ru/viewtopic.php?id=575
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 12:38:54
СЦБист
Мурзик там же Code::Blocks а не EmBitz 0.42
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 12:42:38
Мурик
EmBitz собран из исходников Code::Blocks и русификатор подходит.
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 12:46:48
СЦБист
вроде русифицировал. но только русифицировались не все пункты меню.

Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 12:56:11
Мурик
Лучше чем вообще ничего.

Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 13:58:51
СЦБист
Мурик вот что получилось
В принципе структуры можно найти в заголовочных файлах, но там шибко хреновое описание (((
Есть ли какое-то подробное описание всех структур.
К примеру я хочу просмотреть структуру на АЦП или что-то другое.
Хорошо бы иметь справочное описание

Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 14:52:20
Мурик
СЦБист писал(а):В принципе структуры можно найти в заголовочных файлах, но там шибко хреновое описание
Найти можно парой кликов. Клик ПКМ по структуре и в меню по "Найти объявление xxxx" где xxxx это имя структуры. Аналогично можно поступить с вызовом функции, только в меню выбрать "Найти реализацию xxxx". Бывает полезно, поскольку SPL хорошо документирована и в начале функции находится комментарий объясняющий для чего она нужна и каковы у нее могут быть параметры.
СЦБист писал(а):Есть ли какое-то подробное описание всех структур.
Разве что на английском. На сайте ST следует поискать документацию на библиотеку SPL интересующего семейства (например STM32F10x).
СЦБист писал(а):К примеру я хочу просмотреть структуру на АЦП или что-то другое.
Тогда в поисковике набираете
STM32 ADC и смотрите статьи и примеры по ссылкам (но лучше искать под необходимое семейство, например
STM32F103 ADC потому что есть некоторые отличия между семействами).
Обычно этого достаточно чтобы понять как настроить конкретный модуль и работать с ним. Одна из ссылок где рассмотрена работа с АЦП семейства F103
http://catethysis.ru/stm32-adc/
Код от туда
Спойлер
Код: Выделить всё
void adc_init()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
// настройки ADC
ADC_InitTypeDef ADC_InitStructure;
ADC_StructInit(&ADC_InitStructure);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; // режим работы - одиночный, независимый
ADC_InitStructure.ADC_ScanConvMode = DISABLE; // не сканировать каналы, просто измерить один канал
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; // однократное измерение
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; // без внешнего триггера
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //выравнивание битов результат - прижать вправо
ADC_InitStructure.ADC_NbrOfChannel = 1; //количество каналов - одна штука
ADC_Init(ADC1, &ADC_InitStructure);
ADC_Cmd(ADC1, ENABLE);
// настройка канала
ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_55Cycles5);
// калибровка АЦП
ADC_ResetCalibration(ADC1);
while (ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1));
}
В нем присутствуют комментарии но некоторые места могут быть непонятны. Например чтобы узнать какие значения могут быть в поле
ADC_InitStructure.ADC_Mode, как писал выше, кликаем ПКМ по ADC_Mode_Independent выбираем "Найти объявление xxxx" и получаем список допусимых параметров.
Код: Выделить всё
#define ADC_Mode_Independent ((uint32_t)0x00000000)
#define ADC_Mode_RegInjecSimult ((uint32_t)0x00010000)
#define ADC_Mode_RegSimult_AlterTrig ((uint32_t)0x00020000)
#define ADC_Mode_InjecSimult_FastInterl ((uint32_t)0x00030000)
#define ADC_Mode_InjecSimult_SlowInterl ((uint32_t)0x00040000)
#define ADC_Mode_InjecSimult ((uint32_t)0x00050000)
#define ADC_Mode_RegSimult ((uint32_t)0x00060000)
#define ADC_Mode_FastInterl ((uint32_t)0x00070000)
#define ADC_Mode_SlowInterl ((uint32_t)0x00080000)
#define ADC_Mode_AlterTrig ((uint32_t)0x00090000)
Аналогично и с функциями. Если нужно больше узнать о функции ADC_RegularChannelConfig(), кликаем ПКМ выбираем "Найти реализацию xxxx" и читаем комментарий
Спойлер
Код: Выделить всё
/**
* @brief Configures for the selected ADC regular channel its corresponding
* rank in the sequencer and its sample time.
* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral.
* @param ADC_Channel: the ADC channel to configure.
* This parameter can be one of the following values:
* @arg ADC_Channel_0: ADC Channel0 selected
* @arg ADC_Channel_1: ADC Channel1 selected
* @arg ADC_Channel_2: ADC Channel2 selected
* @arg ADC_Channel_3: ADC Channel3 selected
* @arg ADC_Channel_4: ADC Channel4 selected
* @arg ADC_Channel_5: ADC Channel5 selected
* @arg ADC_Channel_6: ADC Channel6 selected
* @arg ADC_Channel_7: ADC Channel7 selected
* @arg ADC_Channel_8: ADC Channel8 selected
* @arg ADC_Channel_9: ADC Channel9 selected
* @arg ADC_Channel_10: ADC Channel10 selected
* @arg ADC_Channel_11: ADC Channel11 selected
* @arg ADC_Channel_12: ADC Channel12 selected
* @arg ADC_Channel_13: ADC Channel13 selected
* @arg ADC_Channel_14: ADC Channel14 selected
* @arg ADC_Channel_15: ADC Channel15 selected
* @arg ADC_Channel_16: ADC Channel16 selected
* @arg ADC_Channel_17: ADC Channel17 selected
* @param Rank: The rank in the regular group sequencer. This parameter must be between 1 to 16.
* @param ADC_SampleTime: The sample time value to be set for the selected channel.
* This parameter can be one of the following values:
* @arg ADC_SampleTime_1Cycles5: Sample time equal to 1.5 cycles
* @arg ADC_SampleTime_7Cycles5: Sample time equal to 7.5 cycles
* @arg ADC_SampleTime_13Cycles5: Sample time equal to 13.5 cycles
* @arg ADC_SampleTime_28Cycles5: Sample time equal to 28.5 cycles
* @arg ADC_SampleTime_41Cycles5: Sample time equal to 41.5 cycles
* @arg ADC_SampleTime_55Cycles5: Sample time equal to 55.5 cycles
* @arg ADC_SampleTime_71Cycles5: Sample time equal to 71.5 cycles
* @arg ADC_SampleTime_239Cycles5: Sample time equal to 239.5 cycles
* @retval None
*/
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 15:12:22
СЦБист
да посмотреть реализацию можно, но это если я знаю как минимум ее название.
да и при том оно должна присутствовать в коде.
как начинающему мне надо иметь представление о всех структурах и функциях которые есть.
поэтому и спрашиваю где мне их найти. я же должен с чего то собирать код
может справочник какой-то есть ?
где-то видел (не помню где) что это все имеется в справочной документации
такого вида
Re: Stm32 с чего начать изучение...
Добавлено: Пт авг 12, 2016 15:21:52
Мурик
СЦБист писал(а):где-то видел (не помню где) что это все имеется в справочной документации
Мурик писал(а):На сайте ST следует поискать документацию на библиотеку SPL интересующего семейства (например STM32F10x).
Документация находится в архиве с библиотекой SPL (ссылка для семейства F10x)
http://www.st.com/content/st_com/en/pro ... 32054.html
У файла документации имя stm32f10x_stdperiph_lib_um.chm