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

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

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

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

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

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


Ответ
Опции темы
Непрочитано 05.05.2024, 17:32   #11
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,485
Сказал спасибо: 177
Сказали Спасибо 3,140 раз(а) в 2,027 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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   #12
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,837
Сказал спасибо: 2,534
Сказали Спасибо 11,790 раз(а) в 5,906 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

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

Последний раз редактировалось akegor; 05.05.2024 в 18:52.
akegor вне форума   Ответить с цитированием
Непрочитано 05.05.2024, 18:41   #13
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,485
Сказал спасибо: 177
Сказали Спасибо 3,140 раз(а) в 2,027 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

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

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

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

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

Сообщение от sanekfps Посмотреть сообщение
В прерывания и на плате не уходит.
А как оно будет уходить, если прерывания не разрешены?
Не, внимательно глянул - вроде разрешены. Черт разберет эти дебильные макросы: на кой хрен писать SET_BIT, если проще и понятней TIMx-›CR1 = xxx | yyy | zzz ?
Сам себя и других запутал этой страшной записью…
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума   Ответить с цитированием
Непрочитано 05.05.2024, 18:56   #15
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,837
Сказал спасибо: 2,534
Сказали Спасибо 11,790 раз(а) в 5,906 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

Сообщение от индюк Посмотреть сообщение
дада
Это не мой совет, но я поддержал.
Хочется экономить? Дык, сначала поучись у производителя, а потом уже выёживайся, иначе
Сообщение от индюк Посмотреть сообщение
да - долго, зато сразу
хардкор!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума   Ответить с цитированием
Непрочитано 05.05.2024, 18:58   #16
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
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
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,485
Сказал спасибо: 177
Сказали Спасибо 3,140 раз(а) в 2,027 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: STM32 не уходит в прерывания

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

Сообщение от akegor Посмотреть сообщение
Дык, сначала поучись у производителя, а потом уже выёживайся
производитель в конце пдф как раз кучу примеров пишет
__________________
кагмаподэ магмаподэ
индюк вне форума   Ответить с цитированием
Непрочитано 05.05.2024, 19: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   #20
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
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, время: 23:50.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot