STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
fff_br
Родился
Сообщения: 13
Зарегистрирован: Вт окт 04, 2011 09:51:33

Re: STM32 новичку в ARM что к чему

Сообщение fff_br »

a5021 писал(а):Несколько сложно понять ваши объяснения, но если я их понял правильно, то вам требуется нечто наподобие функции itoa(), которая существует в различных вариантах языка Си, но которой нет в IAR-е. Вопрос этот пользователи IAR-а задавали уже неоднократно и в интернетах можно найти самописные реализации этой функции.

itoa это из int в массив... да похоже, я делаю так:
переменная s (uint8_t) и адрес у которой 0x2000004b
преобразую в строку :
sprintf(nnnn,"%02x",(char*)&s); , где nnnn это char nnnn[8]; (в nnnn теперь "2000004b")
затем, полученное значение я записываю в массив
uint8_t *k,*h;
k=str[0][0];
h=nnnn;
while (*h!=0) *k++=*h++; т.е. адрес переменной в массиве, а вот теперь не доходит, как организовать запись в переменную ( т.е. надо из char[] преобразовать в int и записать по этому адресу число)
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: STM32 новичку в ARM что к чему

Сообщение menzoda »

Зачем вообще это всё делать?!
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

fff_br, была когда-то такая задача (работа со строками). Слепил из того что было :) . Может пригодится

А зачем вообще указатель сохранять как строку ?
Вложения
Utils.c
(2.22 КБ) 176 скачиваний
Иван Сусанин - первый полупроводник :solder:
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

Я вот как-то тоже не въехал, отчего прекратил выдачу бесполезных советов на этот счет.

Если для каких-то надобностей нужно хранить адрес переменной, то почему бы его не хранить сразу в двоичной форме, без всяких конвертаций в строку и обратно?
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

Был один косяк у меня с адресами регистров NVIC, но появилась странность в работе приоритетов - если они оба по 0, то более приоритетное прерывание не прерывает менее приоритетное, если задать приоритет отличный от 0, хотя бы для одного из них - то все работает как надо. Почему так? Ведь если приоритет не задан в регистрах, то он, согласно документации, определяется по номеру прерывания.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

Re: STM32 новичку в ARM что к чему

Сообщение Andrew Martin »

Alexey_N писал(а):Почему так?


Потому что :)

When the processor is executing an exception handler, the exception handler is preempted
if a higher priority exception occurs.
If an exception occurs with the same priority as the
exception being handled, the handler is not preempted, irrespective of the exception
number.
However, the status of the new interrupt changes to pending.
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Re: STM32 новичку в ARM что к чему

Сообщение Alexey_N »

А во как. Внимательнее прочитал этот пункт 2.3.5, который вы привели, и понял, что это действительно так :)
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

как задать приоритеты прерываний в cube ? Вот хочу чтоб самый главный был tim3. как правильно сделать ?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

Alex_Golubev писал(а):как задать приоритеты прерываний в cube ?

Изображение
0 - наивысший приоритет
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

почему у меня таймер не работает хотя прерывание стоит тоже наивысшее. В cube установил высокий приоритет HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0); у всех остальных HAL_NVIC_SetPriority(x, 0, 1);
Вот код:

Код: Выделить всё

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
counter_time ++;
switch (counter_time)
{
case 1:
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_RESET);
break;

case 2: HAL_GPIO_WritePin(GPIOE, GPIO_PIN_2, GPIO_PIN_SET); flag_1 = 1; break;

case 3: HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET); break;

case 4: HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET); counter_time =0;break;

}
}

void MX_TIM3_Init(void)
{

TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;

htim3.Instance = TIM3;
htim3.Init.Prescaler = 83;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 20;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim3);

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig);

sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig);

}

Смотрел осциллографом GPIO_PIN_3. Все болтается (разное время между импульсами. ) такое ощущение что что-то выполняет какие то операции и не дает сразу перейти на вектор но что не понятно.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

у всех остальных HAL_NVIC_SetPriority(x, 0, 1);

наверное должно быть у всех остальных HAL_NVIC_SetPriority(x, 1, 0);

Код: Выделить всё

/**
  * @brief  Sets the priority of an interrupt.
  * @param  IRQn: External interrupt number .
  *         This parameter can be an enumerator of IRQn_Type enumeration
  *         (For the complete STM32 Devices IRQ Channels list, please refer to stm32l0xx.h file)
  * @param  PreemptPriority: The preemption priority for the IRQn channel.
  *         This parameter can be a value between 0 and 3.
  *         A lower priority value indicates a higher priority
  * @param  SubPriority: the subpriority level for the IRQ channel.
  *         with stm32f0xx devices, this parameter is a dummy value and it is ignored, because
  *         no subpriority supported in Cortex M0 based products.   
  * @retval None
  */
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

Я вот так выставил прерывания в cube.
Вложения
Безымянный.png
(171.89 КБ) 518 скачиваний
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

трудно что либо разобрать на рисунке, пользую в основном STM32F0 там subpriority нет
fff_br
Родился
Сообщения: 13
Зарегистрирован: Вт окт 04, 2011 09:51:33

Re: STM32 новичку в ARM что к чему

Сообщение fff_br »

Myp3ik писал(а):Может пригодится
, Спасибо.
a5021,menzoda,
Идея была в асинхронном конвейере обработки данных от RS232, где отправка/прием/первичная обработка данных, организованы отдельной функцией, без использования глобальных переменных. В качестве параметров функции передаются n-ое кол-во указателей на char[], которые могут использоваться как просто наборы символов, или как указатель на переменную, или как селектор выбора алгоритма первичной обработки данных.
M@T_F@Q
Родился
Сообщения: 5
Зарегистрирован: Пн июл 23, 2007 21:22:15
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение M@T_F@Q »

M@T_F@Q писал(а):Добрый день товарищи.... Вот решил взяться за ум... и тут же столкнулся с проблемой.. Скачал последнюю версию STM32CubeMX, скачал KEIL5 (WINDOWS8... пробовал KEIL4 - не хочет работать на WINDOWS8). Смотрел много примеров где правят ручками.... также смотрел где вообще ничего не правят ручками... Собственно вопрос - Почему STM32CubeMX не хочет компилировать проект?

Также сделал скрины настроек.

Заранее спасибо.

Изображение Изображение Изображение Изображение Изображение


Товарищи... вопрос еще в силе... подскажите пожалуйста...
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 952
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение GARMIN »

Не совсем понимаю, в чём проблема, на основе примеров STM написать десять строчек кода просто на Си.
M@T_F@Q
Родился
Сообщения: 5
Зарегистрирован: Пн июл 23, 2007 21:22:15
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение M@T_F@Q »

GARMIN писал(а):Не совсем понимаю, в чём проблема, на основе примеров STM написать десять строчек кода просто на Си.


Я пересмотрел кучу примеров... в нескольких примерах показано как прописать ручками эти самые 10 строчек... как получается по примерам - совсем не 10 строчек и совсем в других программах. я до этого писал на BASIC'е (AVR) поэтому те самые 10 строчек немного непонятно какие и куда.... в нескольких видео было проще: С помощью STM32CubeMX создавали проект и сразу же его открывали в той же самой среде KEIL5... и используя подключенные библиотеки, по ним посмотрев какие функции используются можно понять что к чему... а учитывая что проект ручками собирать для новичка это очень сложно поэтому и хочу в первую очередь добиться чтобы готовые программы работали....
lionberger
Открыл глаза
Сообщения: 44
Зарегистрирован: Сб окт 09, 2010 08:45:42

Re: STM32 новичку в ARM что к чему

Сообщение lionberger »

https://yadi.sk/d/jQnfLlx7pCJHX Может поможет. Это моя проба STM.
M@T_F@Q
Родился
Сообщения: 5
Зарегистрирован: Пн июл 23, 2007 21:22:15
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение M@T_F@Q »

lionberger писал(а):https://yadi.sk/d/jQnfLlx7pCJHX Может поможет. Это моя проба STM.

Спасибо большое.... изучаю....
lionberger
Открыл глаза
Сообщения: 44
Зарегистрирован: Сб окт 09, 2010 08:45:42

Re: STM32 новичку в ARM что к чему

Сообщение lionberger »

https://yadi.sk/d/A63yymIdpCxEw Добавил проект STM32F103 LCD 16*2 HAL с русским шрифтом
Ответить

Вернуться в «ARM»