Я в отличие от вас не смешиваю мухи с котлетами и не задаюсь вопросом совместимости по периферии и миграции с относительно новых (хотя и "нижних", на ядре М0) F0хх до древних (хотя и на ядре М3) F100. Одно дело разделение на линейки, а другое - хронология их появления.
Мне всё равно что происходит в вашем придуманном вами мире. Есть градации от производителя. Вот их и придерживайтесь, во избежание самонепонимания.
Цитата:
Правильная аналогия - это сравнение, например, ATMEGA8/16/32 и ATMEGA88/168/328. Последние - это результат эволюции первых, ядро у всех AVR, а по периферии (и особенно по доступу к ней) отличия существенные. Здесь как раз проблему совместимости может решить HAL, чтобы код для Меги8 работал на Меге88.
Не надо выдумывать. ХАЛ может решить только железонезависимые решения. Другое дело,что в меге нет железа как такового, там и переносить то особо нечего. ХАЛ, как средство универсальности, не может предусмотреть все различия в железе и все его нюансы, а следовательно и все варианты решения задачи. Это по любому ложится на плечи кодера, а следовательно и преимущества ХАЛа изначально являются преувеличенными.
Значит решил я с SPL начать. Делаю вот настройку своего АЦП. Залез в инет, нашел пример настройки, создал структуру, записал туда поля типа - "ADC_InitStruct.ADC_Mode = ADC_Mode_RegInjecSimult;". И начал разбираться что же оно пытается сделать. В итоге, ADC_Init(ADC1,&ADC_InitStruct) пытается записать в регистр ADCx->CR1 поле ADC_Mode_RegInjecSimult, которое равно 0x00010000, что в двоичной системе b10000000000000000, что означает что мы пишем ЗАРЕЗЕРВИРОВАНЫЕ биты в CR1??? Структуры и функции находятся в stm32f10x_adc.h и stm32f10x_adc.c. Заранее благодарю за ответ.
да тут на стороне HAL советуют а меня только от вида этого джава-куба жрущего 800МБ оперативки тошнит... скачал с сайта STM32F0xx_Snippets_Package_V1.2.0 (у меня f100rb на платке, даж не знаю подойдет ли). Спасибо за совет, пошел код смотреть. P.S. Пока что понятно что снипеты явно не под мой МК. А на сайте только F0 и L0 есть. P.P.S Две недели головной боли, курения даташита, каша в голове. Только что куб сгенерил проэкт, закинул туда пару функций из инета и МК начал работать с АЦП. Как же сладок этот запретный плод Но это до первой нестандартной задачи, где потребуется тонкая настройка и ясность работы, я так думаю.
Ярослав555, вы бы код выложили того что не получается и написали бы что хотите получить в конечном итоге.
Я хотел ручной запуск АЦПшки, уход в прерывание, снова ручной запуск. вот что из последнего spl Спойлер#include <stm32f10x.h> #include <stm32f10x_conf.h> volatile int val=-1; void ADC1_IRQHandler(void){ if (ADC_GetITStatus(ADC1, ADC_IT_EOC)) { ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); // Функцию нашел в stm32f10x_adc.h val = ADC_GetConversionValue(ADC1); }; }
void NVIC_Config(void){ __enable_irq ();//глобальное разрешение на прерывания NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // Создал структуру NVIC и заполнил ее значениями // Название константы ADC1_IRQn взял из stm32f10x.h NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel=ADC1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); }
while(1){ GPIO_SetBits(GPIOC, GPIO_Pin_9|GPIO_Pin_8); GPIO_ResetBits(GPIOC,GPIO_Pin_9); } } в прерывание не уходил. может что-то забыл. вообще мне посоветовали генерить проект кубом, потом смотреть что он делает, проверить регистры и т.д. но пока что проект простенький, надо запустить. а там буду разбираться.
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Честно говоря, на данный момент как раз на них почему-то и засматриваюсь. Вначале хотел продолжить начинания по Atmega, но внутренний голос подсказывает, что если и начинать изучать, то из относительно современного на данный момент, а PIC и Atmel уже лет 15-20 на слуху.
130 рублей , да что же за люди эти китайцы. Только хотел сам плату сделать, попаять, вспомнить молодость, а тут сразу 130 рублей. Мурик, а данный программатор рабочий? Какие постельки к нему надо спаять/докупить?
Он есть почти у всех кто так или иначе прошивает STM8 или STM32. Если не считать небольшой вероятности дефектов при изготовлении (бывают, но редко), можно утверждать что программатор на 100% рабочий. Бывает что китайцы неправильно маркируют выводы и распиновка отличается от той что на корпусе, но обычно все ОК.
Kotitto писал(а):
Какие постельки к нему надо спаять/докупить?
Обычно не нужно. ST-Link в большинстве случаев используют для внутрисхемной прошивки / отладки (да, это не только программатор, но и отладчик).
Честно говоря, программатор для STM32 не особо нужен, ведь в МК при производстве зашит загрузчик. Другое дело если нужна отладка.
Благодарю за столь подробный ответ, но чутка запутался . Если программатор не нужен, как тогда прошивку заливать? А отлаживать (перезаписывать прошивку) как я понял, можно прямо на впаянном микроконтроллере? К, сожалению, пока не нашел на просторах интернета простенькой статьи для новичка от подключения к ПК, написания программы (Привет Мир), прошивки и показания результата.
А отлаживать (перезаписывать прошивку) как я понял, можно прямо на впаянном микроконтроллере?
Да.
Kotitto писал(а):
пока не нашел на просторах интернета простенькой статьи для новичка от подключения к ПК, написания программы (Привет Мир), прошивки и показания результата.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения