Jump to content

    

Keil и STM32

У меня на плате есть и пищалка. Есть светодиод тестовый. Есть и другие устройства индикации и сигнализации и связи с миром, много разных.

Да, кстати... имею загрузчик, так вот в нем думаю наделать проверок-тестов на все, на что фантазии хватит. Все равно целый сектор флэш-памяти под него занят.

А показанная выше функция стоит в основной программе, с исправным резонатором.

Share this post


Link to post
Share on other sites

Уважаемые гуру! Про меня не забудьте!!!!!

Как написать SysInit Вы мне объяснили. Почему получается частота 23,04 MHz ?

Share this post


Link to post
Share on other sites
Как написать SysInit Вы мне объяснили. Почему получается частота 23,04 MHz ?

Может какие-нить гуру тут и есть, но телепатов точно нет.

Share this post


Link to post
Share on other sites

Я же дал совет - сходите в Куб, проверьте свои установки.

Share this post


Link to post
Share on other sites

И посмотрите, что пишется в регистры. Потом оставьте, что нужно.

Вот и весь совет.

Share this post


Link to post
Share on other sites

Вы наверное меня не поняли.

 

int main(void)

{

SystemInit();

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |

RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |

RCC_APB2Periph_GPIOE, ENABLE);

 

и т.д.

Я еще ничего не делаю в RCC.

После выполнения первой строки смотрю состояние регистров RCC и вижу (сообщение #7).

почему умножение на 5 в PLLах?

 

Очепятка не умножение - деление и не PLL а PREDIV1 и PREDIV2 СОРИ!!!!

Share this post


Link to post
Share on other sites

Так и посмотрите что в SystemInit делается - в чем проблема ?

И начинайте не с main() а c Reset_Handler

Share this post


Link to post
Share on other sites
Вы наверное меня не поняли.

Как вы получили число 23.04? Измерили? Просто посчитали?

У вас только регистры PLL и прескалеров.

Какой генератор? HSE? HSI? PLL включен? Частота на PLL заведена? Частота с PLL выведена?

Share this post


Link to post
Share on other sites

Спасибо за ответы. Еще один последний вопрос про бит PLLXTPRE регистра CFGR. Пытаюсь перевести описание в RM - как-то не очень получается. Можете объяснить троечнику по англ. языку?

 

Как вы получили число 23.04? Измерили? Просто посчитали?

У вас только регистры PLL и прескалеров.

Какой генератор? HSE? HSI? PLL включен? Частота на PLL заведена? Частота с PLL выведена?

 

Посчитал, исходя из данных полей PREDIV1, PREDIV2, PLL2MUL, PLLMUL в регистре CFGR2. Напротив PREDIV1SRC галочка, значит на PREDIV1 подается сигнал с PLL2MIL.

 

Share this post


Link to post
Share on other sites
Спасибо за ответы. Еще один последний вопрос про бит PLLXTPRE регистра CFGR. Пытаюсь перевести описание в RM - как-то не очень получается. Можете объяснить троечнику по англ. языку?

Смотрите на схему "Clock Tree" - там все биты указаны.

PLLXTPRE включает деление HSE на 2. А ну да, у вас же connectivity, у них изменение бита PLLXTPRE уменьшает или увеличивает PREDIV1 в 2 раза.

Но все ваши расчеты не имеют смысла без значений PREDIV1SCR, PLLSCR, SW - они выбирают какую частоту делить и умножать. может быть вы не понимаете что такое мультиплексор?

Share this post


Link to post
Share on other sites

С утра на свежую голову разобрался. В файле system_stm32f10x.c применяется константа HSE_VALUE = 0x17D7840, т.е. по умолчанию подразумевается кварц 25 MHz, а я при подсчете на бумажке взял 8MHz.

* HSE_VALUE is a constant defined in stm32f1xx.h file (default value

* 8 MHz or 25 MHz, depedning on the product used), user has to ensure

* that HSE_VALUE is same as the real frequency of the crystal used.

* Otherwise, this function may have wrong result.

*

* - The result of this function could be not correct when using fractional

* value for HSE crystal.

Я и себе, и всем Вам голову заморочил. У меня была отладочная плата с STM32F103RBT6. Во время первых опытов я благополучно спалил ее, подав +5 прямо на камень. Родной замены в наших магазинах не нашел, только 105RBT6. По ногам подошла, платку дальше стал использовать для экспериментов, забыл что и кварц поменять надо. И вот результат - два дня опухшей головы и Вам головы морочил.

Еще раз прошу прощения за свою невнимательность и забывчивость.

Всем удачи и успеха!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this