05.05.2024, 17:32
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,599
Сказал спасибо: 181
Сказали Спасибо 3,168 раз(а) в 2,050 сообщении(ях)
|
Re: STM32 не уходит в прерывания
на вот вкуривай. проекту лет 6. не смотрел его поэтому ничо не помню, кроме того что все работало.
это не весь проект а инит и работа всего и вся.
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
int main()
{
//RCC-›APB1ENR = 0;
RCC-›APB1ENR |= RCC_APB1ENR_USART2EN
|RCC_APB1ENR_PWREN
|RCC_APB1ENR_BKPEN
|RCC_APB1ENR_TIM3EN;
RCC-›APB2ENR =
RCC_APB2ENR_IOPAEN
|RCC_APB2ENR_IOPBEN
|RCC_APB2ENR_IOPCEN
|RCC_APB2ENR_SPI1EN
|RCC_APB2ENR_AFIOEN
// |RCC_APB2ENR_USART1EN;
//AFIO-›MAPR = AFIO_MAPR_SWJ_CFG_JTAGDISABLE | AFIO_MAPR_USART1_REMAP ;
NVIC_EnableIRQ(TIM3_IRQn);
TIM3-›PSC = 160;
TIM3-›ARR = 50;
TIM3-›CR1 = TIM_CR1_ARPE;
TIM3-›CR2 = 0;
TIM3-›CCR1 = 0;
TIM3-›CCR2 = 0;
TIM3-›CCR3 = 0;
TIM3-›CCR4 = 0;
TIM3-›SMCR = 0;
TIM3-›CCMR1 = 0; //TIM_CCMR1_OC1M | TIM_CCMR1_OC1PE | TIM_CCMR1_OC2M | TIM_CCMR1_OC2PE; //pwm
TIM3-›CCMR2 = 0;
TIM3-›CCER = 0; // TIM_CCER_CC1E | TIM_CCER_CC2E; //pwm
TIM3-›DIER = 0;
TIM3-›EGR = 0;
TIM3-›DIER = TIM_DIER_UIE;
//TIM3-›CR1 |=1;
//NVIC_EnableIRQ(EXTI1_IRQn);
EXTI-›IMR = EXTI_IMR_MR1;
EXTI-›FTSR = EXTI_FTSR_TR1;
EXTI-›EMR = 0;
GPIOA-›CRL = 0;
GPIOA-›CRL =
GPIO_CRL_MODE4 // nCS
|GPIO_CRL_CNF5_1|GPIO_CRL_MODE5 // SPI1 SCK
|GPIO_CRL_CNF6_0 // SPI1 MISO
|GPIO_CRL_CNF7_1|GPIO_CRL_MODE7 // SPI1 MOSI
| (1‹‹ |(1‹‹9)|(1‹‹11)//uart tx out
| (1‹‹15) //usart rx
| (1‹‹6) // PA1 01: Floating input ;
GPIOA-›CRH = 0;
GPIOA-›CRH = (1‹‹7)|(1‹‹11);
GPIOA-›ODR = (3‹‹9);
GPIOB-›CRL = (1‹‹1)|(1‹‹5)|(1‹‹9); //pin 0 1 2 as out
GPIOB-›CRH = (1‹‹9); // pin 10 as out
GPIOC-›CRL = 0;
GPIOC-›CRH = 0;
//SysTick-›LOAD = 0xFF1234;
//SysTick-›VAL = 0;
//SysTick-›CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk;
/* Enable SysTick IRQ and SysTick Timer */
SPI1-›CR1 = SPI_CR1_DFF // 16 bit
|SPI_CR1_BR_0 // /4
|SPI_CR1_SSM|SPI_CR1_SSI|SPI_CR1_MSTR; //Master
SPI1-›CR2 = 0;
SPI1-›CR1 |= SPI_CR1_SPE; //Enable SPI1
IWDG-›KR = 0X5555;
IWDG-›PR = 6;
IWDG-›KR = 0X5555;
IWDG-›RLR = 2000;
//NVIC_EnableIRQ( USART2_IRQn);
initUART();
IWDG-›KR = 0XCCCC;
while(1)
{
IWDG-›KR = 0XAAAA;
}
void EXTI1_IRQHandler ()
{
EXTI-›PR=0XFFFFFF;
EXTI-›IMR = 0;
TIM3-›ARR = 251;
TIM3-›CR1 |=1;
}
void TIM3_IRQHandler ()
{
TIM3-›SR = 0;
TIM3-›EGR = 0;
}
__________________
кагмаподэ магмаподэ
Последний раз редактировалось индюк; 05.05.2024 в 17:35.
|
|
|
|
05.05.2024, 18:08
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,968
Сказал спасибо: 2,552
Сказали Спасибо 11,849 раз(а) в 5,938 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от sanekfps
|
Такое чувство что Keil целиком кривой.
|
"Неча на зеркало пенять, коли рожа..."(Крылов)
Был же совет
Сообщение от NewWriter
|
поставьте CubeIDE - с кодогенератором меньше ошибок в конфигурациях будет.
|
так ведь нет, вместо того, чтобы поучиться, хардкорных граблей захотелось.
Прекрасно Кейлом машется, никаких проблем (если чересчур не умничать).
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 05.05.2024 в 18:52.
|
|
|
|
05.05.2024, 18:41
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,599
Сказал спасибо: 181
Сказали Спасибо 3,168 раз(а) в 2,050 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от akegor
|
поставьте CubeIDE
|
дада - он там нагенерит 2кб чтоб только включиться......
я вообще никогда не испытывал проблем с процами - просто читаешь инструкцию!! всё!!! там в конце все примеры есть.
да - долго, зато сразу все знаешь и понимаешь.
а все эти калогенераторы - они для процов где надо линукс ставить и там 25 тыщ страниц инструкций. там да - проще наговнокодить автоматом иначе вообще ничо не успеешь. проц быстрый - говнокод прожует не заметишь особо.
__________________
кагмаподэ магмаподэ
|
|
|
|
05.05.2024, 18:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от sanekfps
|
В прерывания и на плате не уходит.
|
А как оно будет уходить, если прерывания не разрешены?
Не, внимательно глянул - вроде разрешены. Черт разберет эти дебильные макросы: на кой хрен писать SET_BIT, если проще и понятней TIMx-›CR1 = xxx | yyy | zzz ?
Сам себя и других запутал этой страшной записью…
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
05.05.2024, 18:56
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,968
Сказал спасибо: 2,552
Сказали Спасибо 11,849 раз(а) в 5,938 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от индюк
|
дада
|
Это не мой совет, но я поддержал.
Хочется экономить? Дык, сначала поучись у производителя, а потом уже выёживайся, иначе
Сообщение от индюк
|
да - долго, зато сразу
|
хардкор!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
05.05.2024, 18:58
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от sanekfps
|
В прерывания и на плате не уходит. Такое чувство что Keil целиком кривой.
|
Не-а! Просто из-за невнимательности и непрочтения мануала пропущены важные операции с включением тактирования на порт GPIOC и на таймер TIM2.:
RCC-›APB2ENR |= RCC_APB2ENR_IOPCEN;
RCC-›APB1ENR |= RCC_APB1ENR_TIM2EN;
Без этих операций регистры порта и таймера не будут изменяться, несмотря на то, что в них производится запись. Эти модули просто отключены от системы тактирования, потому и не работают.
Вот тут - мигает, стоит брекпоинт в прерывании, и он там останавливается.
На плате BluePill светик находится на PC13, и поставлен он в направлении "в порт", то есть зажигается "нулем" на выходе PC13, гаснет "единицей".
Замечание: если проект создан в режиме языка C++, то функцию TIM2_IRQHandler нужно оборачивать в специальную штуку extern "C" { }, как показано на скрине.
Последний раз редактировалось NewWriter; 05.05.2024 в 19:10.
|
|
|
|
05.05.2024, 19:05
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,599
Сказал спасибо: 181
Сказали Спасибо 3,168 раз(а) в 2,050 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от NewWriter
|
в режиме языка C++
|
хоспаде!!!
с++ для стм32ф100?????
а чо не питон?? давай еще винду туда всунем!!!
это процы немного выше уровнем чем 80с32..... всего то лишь.......
__________________
кагмаподэ магмаподэ
|
|
|
|
05.05.2024, 19:07
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,599
Сказал спасибо: 181
Сказали Спасибо 3,168 раз(а) в 2,050 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от akegor
|
Дык, сначала поучись у производителя, а потом уже выёживайся
|
производитель в конце пдф как раз кучу примеров пишет
__________________
кагмаподэ магмаподэ
|
|
|
|
05.05.2024, 19:19
|
|
Прохожий
Регистрация: 21.04.2024
Сообщений: 8
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от NewWriter
|
Вот тут - мигает, стоит брекпоинт в прерывании, и он там останавливается.
|
Ерунда какая-та. Уже переписал ваш код. У меня без изменений. А в конфигах проекта или еще где не нужно прописывать изменений? Я в debug прописал в Dialog Dll parameter: -PSTM32F103ZE.
|
|
|
|
05.05.2024, 19:19
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: STM32 не уходит в прерывания
Сообщение от индюк
|
с++ для стм32ф100?????
|
А почему бы и нет? Он, между прочим, прекрасно работает. Тем более, поскольку С++ является приемником Си, то он поддерживает весь функционал базового Си.
В остальном же, более продвинутый компилятор эффективно сжимает "плюсовые" навороты до уровня Си, а в некоторых случаях и еще лучше.
Сообщение от sanekfps
|
У меня без изменений.
|
Значит, проект криво создали. Закройте его, удалите и создайте новый, ВЕРНО указав модель микроконтроллера - на плате BluePill стоит STM32F103 C8
Последний раз редактировалось NewWriter; 05.05.2024 в 19:21.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:43.
|
|