|
|
  |
STM32F0+Keil=простой старт, Помогите начать работать с АРМ Cortex M0 |
|
|
|
Jan 27 2014, 04:41
|
Группа: Новичок
Сообщений: 6
Регистрация: 6-11-13
Пользователь №: 79 060

|
Добрый день. У меня проблема с использованием adc, микросхема - STM32F050F4, измерение не происходит. В KEIL могу выбрать для ADC только регистр CCR (ADC->CCR) зато для ADC1 доступны регистры все Код // Включить тактирование порта B RCC->AHBENR |= RCC_AHBENR_GPIOBEN; // Вывод 1 на аналоговый вход GPIOB->MODER |= GPIO_MODER_MODER1;
// Настройк ADC ADC1->CR |= ADC_CR_ADEN; ADC1->CFGR2 |= ADC_CFGR2_JITOFFDIV2;
ADC1->CHSELR |= ADC_CHSELR_CHSEL9; И при отладке в железе видно, что регистры не записываются в нужные значения Код // Главный цикл int main(void) { SysTick_Config(48000); while(1) { ADC1->CR |= ADC_CR_ADSTART; i=100; while(i); c=((ADC1->DR)>8); f[2]=c/100%10; f[1]=c/10%10; f[0]=c%10; } } //Обработчик прерывания системного таймера - индикация void SysTick_Handler(void) { if(i)i--; c_i++; if(c_i==3) c_i=0; GPIOA->BSRR = 0xffff0000; // сброс GPIOA->BSRR = ((mask_led[f[c_i]])&0xff) | mask_ind[c_i]; return; } Проясните пожалуйста: Что значит ADC1 и чем оно отличается от ADC ? Каким образом мне записывать значения в регистры, так, чтоб они отображались и работали?
|
|
|
|
|
Jan 27 2014, 17:52
|
Группа: Новичок
Сообщений: 6
Регистрация: 6-11-13
Пользователь №: 79 060

|
Цитата(ViKo @ Jan 27 2014, 09:59)  А тактирование АЦП включили? Нужную тактовую частоту подали? По умолчанию тактирование включено от асинхронного собственного генератора 14 МГц. Также пробовал подключать такты к шине AHB/2, эффект точно такой же. Код ADC1->CFGR2 |= ADC_CFGR2_JITOFFDIV2; Проблема в том, что не записываются данные в регистры ADC после выполнения строк кода. Ни в режиме симулятора, ни в дебаге железа. Код ADC1->CR |= ADC_CR_ADEN; ADC1->CFGR2 |= ADC_CFGR2_JITOFFDIV2; Проверял пути к адресам flash, начало ADC1 - 0x40012400. Соответствует документации. Битовые маски тоже годные. Регистры портов и тактирования записываются корректно. Индикация работает, при записи в переменную "с" константы, она выводится. Подозреваю проблема с настройками библиотек. Нужно ли их настраивать, если да, то каким образом ? Прикрепил проект полностью
|
|
|
|
|
Jan 28 2014, 21:05
|
Группа: Новичок
Сообщений: 6
Регистрация: 6-11-13
Пользователь №: 79 060

|
Всем спасибо за участие, проблему решил. Оказалось нужно дополнительно включить такты на управление регистрами ADC Код RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; Теперь все в порядке
|
|
|
|
|
Mar 10 2014, 14:43
|
Группа: Новичок
Сообщений: 6
Регистрация: 6-11-13
Пользователь №: 79 060

|
Здравствуйте. Вопрос по прерыванию готовности результата группы измерений АЦП Не могу найти данный обработчик в серии F0. Стоит задача запустить группу преобразований и отправить через DMA обработать прерывание по окончанию преобразования группы измерений. Каким образом вызвать такое прерывание если в списке векторов прерывания в библиотеке нашел только вызов оконного : Код ADC1_COMP_IRQn = 12, /*!< ADC1, COMP1 and COMP2 Interrupts */ Образцы работы с ADC + DMA есть для другой f10x серии, но там в библиотеке обработчик описан, а тут нет
|
|
|
|
|
Jul 19 2015, 14:23
|
Группа: Новичок
Сообщений: 1
Регистрация: 19-07-15
Пользователь №: 87 632

|
вСЕМ ПРИВЕТ! я начинаю изучать stm 32 f0 и вот возник вопрос,итак внимание: объясните в чем вызвана разница в синтаксисе(в том числе во включение тактирования портов) пример 1 // Включить тактирование порта C RCC->AHBENR |= RCC_AHBENR_GPIOCEN; // 9, 10 выводы - на выход (general purpose output mode) GPIOC->MODER |= GPIO_MODER_MODER9_0 | GPIO_MODER_MODER10_0; пример 2 GPIO_InitTypeDef GPIO_InitStruct_butt; GPIO_InitTypeDef GPIO_InitStruct_led; /*Enable or disable the AHB peripheral clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE); вроде бы одно и тоже,но написано чуть по разному,тут мелькают практически все сообщения со вторым вариантом написания, первый вариант накопал допустим тут: http://teplofizik.diary.ru/p182430549.htm?oam#more1как правильнее писать, и еще вопрос почему когда в кейле пытаюсь написать первым вариантом он не может понять что я инициализурую( ну короче вообще не компилится и команды красным подчеркивает) я так понимаю,что в каком-то служебном файлике команды прописаны как во втором варианте,если я прав подскажите как файлик называется,уже столько времени копаюсь,что ппц... спасибо всем тем кто поставит на путь истинный  !
|
|
|
|
|
Jul 23 2015, 08:17
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (toweroff @ Jul 22 2015, 22:44)  я знаю Вашу "любовь" к библиотекам, написанным не Вами... Увы, это жизненный опыт  . C середины 90x годов встречал только с разной степенью безумности писанные "библиотеки". Вот почти прямо сейчас вожусь с JN5168 чипом. С ним уже абсолютно вырожденный вариант - документации нет вообще - только либы и точка. Либы само-собой уже без исходников. Казалось-бы меньше знаешь - крепче спишь, но ведь дерьмо лезет все равно. API написано через анус, хотя для тех-же базовых функций предачи пакетов мог-ли-бы посмотреть хотя-бы лет тридцать назад специфицированный интерфейс пакетного драйвера. Так нет, написана какя-то фигня котороая как-бы с одной стороны как-бы показывет, что опыт проедшественников как-бы знаком, но с другой стороны, что ОН НЕ ПОНЯТ!!! Море байтовых пременых на 32bit контроллере, сруктруры БЕЗ правил паковки, но зато местами за неведомым хреном с напихаными выравнивающими полями. Один кусок "библиотеки" все-же есть в исходнике, ибо не смогли родить достойный API - пришлось отдавать пользователям шанс расхлебать. Так я чуть мозг не вывихнул думая, что в том нагромождении структур и очередей есть какой-то смысл и наихитрейшая хитрость. Но ее там нет. Совсем нет. Одна глупость нагромождения школярских рецептов программирования которые запихнули в автора сего творения преподаватели, но не смогли впихнуть ему мозга побольше. QUOTE , но для первого старта - посмотреть что и как - вполне себе хотя... там действительно все как-то сделано... нипанашынски  тоже делаю свое, хоть и с подсмотром некоторых моментов из SPL со сверкой с даташитом Ну так безусловного отторжения "библиотек" нет - все-же хоть как-то работающий хоть какой-то образчик. Дальше уже если что-то дышет - дальше сам. Но уж на "библиотечные" функции типа "подрыгать ножкой" уж точно не смотрю никогда. На самом деле проблемы с разными "исходниками" зачастую начинабтся еще раньше библиотек - поставщики компиляторов обычно поставляют и хидеры. Причем все чаще и чаще обращаются более, чем вольно с описаниями производителя и напихивают своих даже не расширений а вообще уродств. Понятно, что-бы начинающе-непонимающие на другой компилятор не соскакивали. Посему почти всегда правки начинаются уже с постепенного добавления собственноручно написанных/правленых хидеров.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|