STM32 новичку в ARM что к чему
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
То есть, *_it.c/h файлики, которые генерируются кубом, Вы просто не компилируете вообще?
- Реклама
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
Как это не компилирую? Компилирую. Просто обратите внимание что оригинальные Callback функции объявлены с директивой weak - слабые. Это по своему назначению и не функци вовсе, а так - заглушки. Совершенно законно можно определить Callback функцию с тем же именем у себя в файле, и компилятор возьмет именно ее, как более высшую по проритету. Лично я пока не экспериментировал с выносом Callback в отдельный файл, но спокойно пишу их в мейне в секции юзер кода. Там делаю свич по переданному параметру - таймер, юарт и т.д., и дальше передаю обработку по ветке в нужный объект.
Re: STM32 новичку в ARM что к чему
Утречка всем.
Нужен STM32 F103C8T6 для ослика DSO138
нашел на али чипы с припиской
LQFP48 и QFP48 QFP
что это значит и подойдут ли такие?
Нужен STM32 F103C8T6 для ослика DSO138
нашел на али чипы с припиской
LQFP48 и QFP48 QFP
что это значит и подойдут ли такие?
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
это тип корпуса. STM32 F103C8T6 сущевствуют только в LQFP48. Думаю китайцы не вдавались в детали описания и это все одни и те же чипы.
Re: STM32 новичку в ARM что к чему
Спасибо, прикупил
- Реклама
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
STM32F103C8T6. Запустил ШИМ на таймере 1, Ок. Пытаюсь запустить на таймере 2 шим 1 - на выходе РА15 глухо. Подскажите плиз где чего я неправильно сделал:
Исправил код, добавил remap чтобы всё было в одном месте - не помогло.
Спойлер
Код: Выделить всё
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // Timer 2 clock enabled
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN | // Enabled Alternate Function I/O clock
RCC_APB2ENR_IOPAEN; // Enabled Clock GPIO A
AFIO->MAPR = AFIO_MAPR_SWJ_CFG_JTAGDISABLE | // Disable JTAG
AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1; // Partial remap Timer 2
GPIOA->CRH = GPIO_CRH_MODE15_1 | // Output Push-Pull max speed 2 MHz
GPIO_CRH_CNF15_1; // AFO Push-Pull
TIM2->PSC = 359; // Prescaller 16 bit
TIM2->ARR = 0xFFFF; // Value Auto Reload Register
TIM2->CCR1 = 0x0FFF; // TIM2 capture/compare register 1
TIM2->CCER |= TIM_CCER_CC1E | // Compare 1 output enable
TIM_CCER_CC1P; // Compare 1 output polarity
TIM2->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; //PWM mode 1, channel 1 Ouput
TIM2->CR1 = TIM_CR1_ARPE | // Auto-reload preload enable
TIM_CR1_URS; // Update request source
TM2->CR2 = 0x00;
TIM2->DIER = 0; Update interrupt enable
TIM2->CR1 |= TIM_CR1_CEN; // Counter enable
Последний раз редактировалось Frogfot Сб фев 15, 2020 12:08:01, всего редактировалось 5 раз.
Хорошему коту и в декабре - март 
Re: STM32 новичку в ARM что к чему
[uquote="Frogfot",url="/forum/viewtopic.php?p=3791101#p3791101"]Пытаюсь запустить на таймере 2 шим 1 - на выходе РА11 глухо.[/uquote]
Во-первых, не PA11, а PA15 который у тебя и настраивается. Во-вторых, этот пин находится в колонке Remap, а его то ты и не делаешь(AFIO->MAPR).
Во-первых, не PA11, а PA15 который у тебя и настраивается. Во-вторых, этот пин находится в колонке Remap, а его то ты и не делаешь(AFIO->MAPR).
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
[uquote="Reflector",url="/forum/viewtopic.php?p=3791107#p3791107"][uquote="Frogfot",url="/forum/viewtopic.php?p=3791101#p3791101"]Пытаюсь запустить на таймере 2 шим 1 - на выходе РА11 глухо.[/uquote]
Во-первых, не PA11, а PA15 который у тебя и настраивается. Во-вторых, этот пин находится в колонке Remap, а его то ты и не делаешь(AFIO->MAPR).[/uquote]
Ок, спасибо, сейчас исправлю. На РА 11 запускал с таймера 1 выход 4, забыл исправить, а ремап упустил из вида.
Типа так?
Добавлено after 9 hours 18 minutes 59 seconds:
2 Reflector: исправил, всё равно нет ШИМа на выходе. Где-то ещё одна собака порылась
А может и не одна.
Во-первых, не PA11, а PA15 который у тебя и настраивается. Во-вторых, этот пин находится в колонке Remap, а его то ты и не делаешь(AFIO->MAPR).[/uquote]
Ок, спасибо, сейчас исправлю. На РА 11 запускал с таймера 1 выход 4, забыл исправить, а ремап упустил из вида.
Типа так?
Код: Выделить всё
AFIO->MAPR = AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1; // Partial remap Timer 2 2 Reflector: исправил, всё равно нет ШИМа на выходе. Где-то ещё одна собака порылась
Хорошему коту и в декабре - март 
Re: STM32 новичку в ARM что к чему
у таймера, что касается канала все перепроверь
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
[uquote="a797945",url="/forum/viewtopic.php?p=3791211#p3791211"]у таймера, что касается канала все перепроверь[/uquote]
Таймер в режиме переполнения отлично работет, прерывания выдаёт. Пытаюсь выдать с него ШИМ - где-то что-то или не доделал, или неправильно сделал, ШИМа нет.
Таймер в режиме переполнения отлично работет, прерывания выдаёт. Пытаюсь выдать с него ШИМ - где-то что-то или не доделал, или неправильно сделал, ШИМа нет.
Хорошему коту и в декабре - март 
-
Кислородный
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт фев 13, 2020 07:41:02
Re: STM32 новичку в ARM что к чему
Мануал и даташит в помощь!
ШИМ получился 0% для первого канала, а настраивается для второго канала - регистр CCR2, в то время как регистр CCR1 по умолчанию = 0, а законфиген на ШИМ именно первый канал. Нужно поменять CCR2 на CCR1.
Ну и при значениях PSC = 359 и ARR = 65535, у вас получится оооочень бооооольшооой период в несколько секунд при дефолтной частоте 8 МГц. Для отдельных вспышек светодиода пойдет, но не для регулировки яркости этого светодиода.
Ну и вторым вопросом, чусствую, будет вопрос "аааа, куда пропала отладкааааа??? почему он в пошаговой отладке отвалился???"
ШИМ получился 0% для первого канала, а настраивается для второго канала - регистр CCR2, в то время как регистр CCR1 по умолчанию = 0, а законфиген на ШИМ именно первый канал. Нужно поменять CCR2 на CCR1.
Ну и при значениях PSC = 359 и ARR = 65535, у вас получится оооочень бооооольшооой период в несколько секунд при дефолтной частоте 8 МГц. Для отдельных вспышек светодиода пойдет, но не для регулировки яркости этого светодиода.
Ну и вторым вопросом, чусствую, будет вопрос "аааа, куда пропала отладкааааа??? почему он в пошаговой отладке отвалился???"
Последний раз редактировалось Кислородный Сб фев 15, 2020 10:26:38, всего редактировалось 1 раз.
еавс!
Re: STM32 новичку в ARM что к чему
Frogfot, я от всех F1 уже избавился, потому проверить не могу, но на PA15 еще JTDI висит и это вход. В большинстве случаев используется SWD и лишние ноги JTAG отключаются через тот же ремап в начале программы.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
Совершенно верно.
Код: Выделить всё
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_1; // PA15 отключить от J-TAG-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
[uquote="Reflector",url="/forum/viewtopic.php?p=3791227#p3791227"]Frogfot, я от всех F1 уже избавился, потому проверить не могу.[/uquote]Круто, я ещё играюсь F103, вот хочу попробовать Black Pils на STM32F411.
[uquote="Reflector",url="/forum/viewtopic.php?p=3791227#p3791227"]Frogfot но на PA15 еще JTDI висит и это вход. В большинстве случаев используется SWD и лишние ноги JTAG отключаются через тот же ремап в начале программы.[/uquote]
Слона то я и не заметил
Благодарю, уже когда-то натыкался на эти грабли, но запамятовал. Шью я тоже по SWD.Типа так?
Сейчас исправлю, попробую.
[uquote="Reflector",url="/forum/viewtopic.php?p=3791227#p3791227"]Frogfot но на PA15 еще JTDI висит и это вход. В большинстве случаев используется SWD и лишние ноги JTAG отключаются через тот же ремап в начале программы.[/uquote]
Слона то я и не заметил
Код: Выделить всё
AFIO->MAPR = AFIO_MAPR_SWJ_CFG_JTAGDISABLE
Последний раз редактировалось Frogfot Сб фев 15, 2020 10:52:56, всего редактировалось 3 раза.
Хорошему коту и в декабре - март 
Re: STM32 новичку в ARM что к чему
о, все расписали
только дефолтовая там не 8МГц
только дефолтовая там не 8МГц
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
Отключил JTAG, всё равно ШИМа нет 
Добавлено after 12 minutes 53 seconds:
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Мануал и даташит в помощь![/uquote]
Типа "Бог в помощь!" - спасибо.
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Мануал и даташит в помощь!
ШИМ получился 0% для первого канала, а настраивается для второго канала - регистр CCR2, в то время как регистр CCR1 по умолчанию = 0, а законфиген на ШИМ именно первый канал. Нужно поменять CCR2 на CCR1.
Ну и при значениях PSC = 359 и ARR = 65535, у вас получится оооочень бооооольшооой период в несколько секунд при дефолтной частоте 8 МГц. Для отдельных вспышек светодиода пойдет, но не для регулировки яркости этого светодиода.[/uquote]
Частота 72 МГц, на таймере 1 работает нормально, на выходах ШИМ светодиоды, на таймере 1 мигает, на таймере 2 глухо. Сейчас посмотрю исправлю CCR2 на CCR1. Спасибо, до ночи сидел, нахомутал.
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Ну и вторым вопросом, чусствую, будет вопрос "аааа, куда пропала отладкааааа??? почему он в пошаговой отладке отвалился???"[/uquote]
Шью по SWD, такого вопроса не будет.
Добавлено after 16 minutes 32 seconds:
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Нужно поменять CCR2 на CCR1.[/uquote]
Исправил, не помогло. ШИМа нет. Уважаемые знатоки, какие у кого ещё предложения?
Добавлено after 12 minutes 53 seconds:
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Мануал и даташит в помощь![/uquote]
Типа "Бог в помощь!" - спасибо.
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Мануал и даташит в помощь!
ШИМ получился 0% для первого канала, а настраивается для второго канала - регистр CCR2, в то время как регистр CCR1 по умолчанию = 0, а законфиген на ШИМ именно первый канал. Нужно поменять CCR2 на CCR1.
Ну и при значениях PSC = 359 и ARR = 65535, у вас получится оооочень бооооольшооой период в несколько секунд при дефолтной частоте 8 МГц. Для отдельных вспышек светодиода пойдет, но не для регулировки яркости этого светодиода.[/uquote]
Частота 72 МГц, на таймере 1 работает нормально, на выходах ШИМ светодиоды, на таймере 1 мигает, на таймере 2 глухо. Сейчас посмотрю исправлю CCR2 на CCR1. Спасибо, до ночи сидел, нахомутал.
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Ну и вторым вопросом, чусствую, будет вопрос "аааа, куда пропала отладкааааа??? почему он в пошаговой отладке отвалился???"[/uquote]
Шью по SWD, такого вопроса не будет.
Добавлено after 16 minutes 32 seconds:
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791225#p3791225"]Нужно поменять CCR2 на CCR1.[/uquote]
Исправил, не помогло. ШИМа нет. Уважаемые знатоки, какие у кого ещё предложения?
Хорошему коту и в декабре - март 
-
Кислородный
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт фев 13, 2020 07:41:02
Re: STM32 новичку в ARM что к чему
Вы нас так тестируете на внимательность?? 
TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; //PWM mode 1, channel 1 Ouput
На первых порах приучите себя не копипастить текст, а писать заново. Куда вам торопиться? Зато запомните назначение регистров и битов и уж точно не забудете переправить TIM1 на TM2 и CCR2 на CCR1.
А для быстрой замены таймера есть такая фича:
#define USED_TIM TIM2
USED_TIM->CCMR1 = TIM_CCMR.......
USED_TIM->CR1 |= TIM_CR1_CEN.......
и надо лишь заменить в дефайне TIM2 на TIM1
TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; //PWM mode 1, channel 1 Ouput
На первых порах приучите себя не копипастить текст, а писать заново. Куда вам торопиться? Зато запомните назначение регистров и битов и уж точно не забудете переправить TIM1 на TM2 и CCR2 на CCR1.
А для быстрой замены таймера есть такая фича:
#define USED_TIM TIM2
USED_TIM->CCMR1 = TIM_CCMR.......
USED_TIM->CR1 |= TIM_CR1_CEN.......
и надо лишь заменить в дефайне TIM2 на TIM1
еавс!
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: STM32 новичку в ARM что к чему
[uquote="Кислородный",url="/forum/viewtopic.php?p=3791278#p3791278"]Вы нас так тестируете на внимательность?? 
TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; //PWM mode 1, channel 1 Ouput[/uquote]
Благодарю, 100 раз просматривал, не заметил. Исправил, но ШИМа по прежнему нет.
Привожу код инициализации для Таймера 1 - который работает:
TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; //PWM mode 1, channel 1 Ouput[/uquote]
Благодарю, 100 раз просматривал, не заметил. Исправил, но ШИМа по прежнему нет.
Привожу код инициализации для Таймера 1 - который работает:
Спойлер
Код: Выделить всё
// ----------------------------------------------------------------------
void Init_TC1 (void)
{
TIM1->PSC = 719; // 72; // TIM1 prescaler
TIM1->ARR = 0xFFFF; // 1000; // TIM1 auto-reload register
TIM1->CCR4 = 0x0FFF; // 300; // TIM1 and TIM8 capture/compare register //коэф. заполнения
TIM1->CCER = TIM_CCER_CC4E | // Compare 4 output enable
TIM_CCER_CC4P; // Compare 4 output polarity
TIM1->BDTR = TIM_BDTR_MOE; // OC and OCN outputs are enabled
TIM1->CCMR2 = TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1; // PWM mode 1, прямой ШИМ 4 канал
TIM1->CR1 = TIM_CR1_CEN; // Counter enabled
}Хорошему коту и в декабре - март 
Re: STM32 новичку в ARM что к чему
[uquote="Frogfot",url="/forum/viewtopic.php?p=3791284#p3791284"]Исправил, но ШИМа по прежнему нет.[/uquote]
Откопал старую платку с F103, почему у меня с твоим последним кодом ШИМ есть?
Откопал старую платку с F103, почему у меня с твоим последним кодом ШИМ есть?
Спойлер
Код: Выделить всё
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // Timer 2 clock enabled
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN | // Enabled Alternate Function I/O clock
RCC_APB2ENR_IOPAEN; // Enabled Clock GPIO A
AFIO->MAPR = AFIO_MAPR_SWJ_CFG_JTAGDISABLE | // Disable JTAG
AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1; // Partial remap Timer 2
GPIOA->CRH = GPIO_CRH_MODE15_1 | // Output Push-Pull max speed 2 MHz
GPIO_CRH_CNF15_1; // AFO Push-Pull
TIM2->PSC = 359; // Prescaller 16 bit
TIM2->ARR = 0xFFFF; // Value Auto Reload Register
TIM2->CCR1 = 0x0FFF; // TIM2 capture/compare register 1
TIM2->CCER |= TIM_CCER_CC1E | // Compare 1 output enable
TIM_CCER_CC1P; // Compare 1 output polarity
TIM2->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; //PWM mode 1, channel 1 Ouput
TIM2->CR1 = TIM_CR1_ARPE | // Auto-reload preload enable
TIM_CR1_URS; // Update request source
TIM2->CR2 = 0x00;
TIM2->DIER = 0; //Update interrupt enable
TIM2->CR1 |= TIM_CR1_CEN; // Counter enable-
Кислородный
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт фев 13, 2020 07:41:02
Re: STM32 новичку в ARM что к чему
Со всеми замеченными правками - должно работать. Просто вы наверно не замечаете его.
Вот, работает:
Вот, работает:
- Вложения
-
- DS1Z_QuickPrint3.png
- (6.12 КБ) 234 скачивания
еавс!


