реклама на сайте
подробности

 
 
> Нашёл глюк то ли Keil то ли STM32, то ли я чего-то не знаю
MiklPolikov
сообщение May 25 2012, 14:11
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



#define HSI_ON RCC->CR |= RCC_CR_HSION; while(!(RCC->CR & RCC_CR_HSIRDY)){} //включили генератор HSI
#define SYSTEM_CLOCK_HSI RCC->CFGR &=~RCC_CFGR_SW; RCC->CFGR |= RCC_CFGR_SW_HSI //Выбрали System clock HSI


HSI_ON;
SYSTEM_CLOCK_HSI;
i++; /////////////////// если этой бессмысленной строчки нет, то при последующем вызове любой функции проц зависает.
////////////////////Под отладкой видно что попал в ассемблерный код. Не под отладкой то же висит.
SPI1_INIT();
DMA_SD_INIT();


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andries5
сообщение May 25 2012, 17:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421



Цитата(MiklPolikov @ May 25 2012, 16:11) *
#define HSI_ON RCC->CR |= RCC_CR_HSION; while(!(RCC->CR & RCC_CR_HSIRDY)){} //включили генератор HSI
#define SYSTEM_CLOCK_HSI RCC->CFGR &=~RCC_CFGR_SW; RCC->CFGR |= RCC_CFGR_SW_HSI //Выбрали System clock HSI

Хоть в скобки заключите содержимое #define.

#define HSI_ON (RCC->CR |= RCC_CR_HSION; while(!(RCC->CR & RCC_CR_HSIRDY)){} )

может поможет.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение May 25 2012, 19:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(andries5 @ May 25 2012, 20:54) *
Хоть в скобки заключите содержимое #define.


За скобочки спасибо.

Какой-то баг связан с переключением системных частот и частот генераторов. Меняю в программе мелочи , и глюк пропадает.
Пока не понимаю что сказать и о чём спросить .

Если в начале программы нет строчки

RCC->CR &=~RCC_CR_HSEON; //выключили генератор HSE

то всё хорошо.
А если она есть то под отладкой в какой-то момент программа виснет в ассемблерном коде. А не под отладкой не виснет.
Не понимаю, у меня даже нет никакого кварца на ногах HSE , на что может влиять его отключение кроме того что потребление падает на 1.5мА ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016