Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM32 не уходит в прерывания

Непрочитано 05.05.2024, 17:32  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,125
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от sanekfps Посмотреть сообщение
Такое чувство что Keil целиком кривой.
"Неча на зеркало пенять, коли рожа..."(Крылов)
Был же совет
Сообщение от NewWriter Посмотреть сообщение
поставьте CubeIDE - с кодогенератором меньше ошибок в конфигурациях будет.
так ведь нет, вместо того, чтобы поучиться, хардкорных граблей захотелось.
Прекрасно Кейлом машется, никаких проблем (если чересчур не умничать).
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.

Последний раз редактировалось akegor; 05.05.2024 в 18:52.
akegor вне форума  
Непрочитано 05.05.2024, 18:41  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,125
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от akegor Посмотреть сообщение
поставьте CubeIDE
дада - он там нагенерит 2кб чтоб только включиться......

я вообще никогда не испытывал проблем с процами - просто читаешь инструкцию!! всё!!! там в конце все примеры есть.

да - долго, зато сразу все знаешь и понимаешь.

а все эти калогенераторы - они для процов где надо линукс ставить и там 25 тыщ страниц инструкций. там да - проще наговнокодить автоматом иначе вообще ничо не успеешь. проц быстрый - говнокод прожует не заметишь особо.
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 05.05.2024, 18:49  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от sanekfps Посмотреть сообщение
В прерывания и на плате не уходит.
А как оно будет уходить, если прерывания не разрешены?
Не, внимательно глянул - вроде разрешены. Черт разберет эти дебильные макросы: на кой хрен писать SET_BIT, если проще и понятней TIMx-›CR1 = xxx | yyy | zzz ?
Сам себя и других запутал этой страшной записью…
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 05.05.2024, 18:56  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от индюк Посмотреть сообщение
дада
Это не мой совет, но я поддержал.
Хочется экономить? Дык, сначала поучись у производителя, а потом уже выёживайся, иначе
Сообщение от индюк Посмотреть сообщение
да - долго, зато сразу
хардкор!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 05.05.2024, 18:58  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от sanekfps Посмотреть сообщение
В прерывания и на плате не уходит. Такое чувство что Keil целиком кривой.
Не-а! Просто из-за невнимательности и непрочтения мануала пропущены важные операции с включением тактирования на порт GPIOC и на таймер TIM2.:
RCC-›APB2ENR |= RCC_APB2ENR_IOPCEN;
RCC-›APB1ENR |= RCC_APB1ENR_TIM2EN;

Без этих операций регистры порта и таймера не будут изменяться, несмотря на то, что в них производится запись. Эти модули просто отключены от системы тактирования, потому и не работают.


Вот тут - мигает, стоит брекпоинт в прерывании, и он там останавливается.
На плате BluePill светик находится на PC13, и поставлен он в направлении "в порт", то есть зажигается "нулем" на выходе PC13, гаснет "единицей".
Замечание: если проект создан в режиме языка C++, то функцию TIM2_IRQHandler нужно оборачивать в специальную штуку extern "C" { }, как показано на скрине.
Миниатюры:
Нажмите на изображение для увеличения
Название: Снимок экрана 2024-05-05 205238.jpg
Просмотров: 0
Размер:	113.4 Кб
ID:	181633  
__________________
Убейте шизофреника Вовку Стогова!

Последний раз редактировалось NewWriter; 05.05.2024 в 19:10.
NewWriter вне форума  
Непрочитано 05.05.2024, 19:05  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,125
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от NewWriter Посмотреть сообщение
в режиме языка C++
хоспаде!!!
с++ для стм32ф100?????
а чо не питон?? давай еще винду туда всунем!!!
это процы немного выше уровнем чем 80с32..... всего то лишь.......
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 05.05.2024, 19:07  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,125
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от akegor Посмотреть сообщение
Дык, сначала поучись у производителя, а потом уже выёживайся
производитель в конце пдф как раз кучу примеров пишет
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 05.05.2024, 19:19  
sanekfps
Прохожий
 
Регистрация: 21.04.2024
Сообщений: 8
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sanekfps на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от NewWriter Посмотреть сообщение
Вот тут - мигает, стоит брекпоинт в прерывании, и он там останавливается.
Ерунда какая-та. Уже переписал ваш код. У меня без изменений. А в конфигах проекта или еще где не нужно прописывать изменений? Я в debug прописал в Dialog Dll parameter: -PSTM32F103ZE.
sanekfps вне форума  
Непрочитано 05.05.2024, 19:19  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от индюк Посмотреть сообщение
с++ для стм32ф100?????
А почему бы и нет? Он, между прочим, прекрасно работает. Тем более, поскольку С++ является приемником Си, то он поддерживает весь функционал базового Си.
В остальном же, более продвинутый компилятор эффективно сжимает "плюсовые" навороты до уровня Си, а в некоторых случаях и еще лучше.


Сообщение от sanekfps Посмотреть сообщение
У меня без изменений.
Значит, проект криво создали. Закройте его, удалите и создайте новый, ВЕРНО указав модель микроконтроллера - на плате BluePill стоит STM32F103C8
__________________
Убейте шизофреника Вовку Стогова!

Последний раз редактировалось NewWriter; 05.05.2024 в 19:21.
NewWriter вне форума  
 

Метки
keil uvision, stm32
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32 как определить разрешены ли прерывания глобально kvark85 ARM 2 28.05.2015 13:08
Как расчитать время выполнения прерывания в STM32? MaxiMuz79 ARM 10 18.04.2014 18:30
Программа уходит в HardFault (STM32) valic Песочница (вопросы новичков) 9 26.05.2013 09:15
AT89C5131 прием и передача данных по USB rihkov AVR 14 15.11.2012 08:16
Вход в прерывания для PIC микроконтроллеров dimmich Микроконтроллеры, АЦП, память и т.д 4 06.12.2009 17:17


Часовой пояс GMT +4, время: 15:16.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.