Заливаю прошивку через Keil 5.26 - если через Strl+F5 (старт отладки)
то всё работает, но самостоятельно после ресета не стартует, заливка
через ST-LINK Utility - заливается но не стартует!
void _delay_us(uint16_t us)
{
//////////////////////////////////////////////////////////////////////////////////////////////
uint32_t period = 0;
if (0x00 == us) return;
period = ((F_CPU/5733333)*us)-6; //подобранные коэфициенты в ѕротеусе дл¤ STM32F103C6 72м√ц ¤дро, 50м√ц порт
for (unsigned int q = 0; q <= period; q++){}
//////////////////////////////////////////////////////////////////////////////////////////////
}
Разве это AVR?
Вот первых частота может быть изменена во время работы программы и нужно использовать SystemCoreClock перед этим вызвать SystemCoreClockUpdate();.
Во вторых, такая задержка будет неточной. В STM32F105 есть DWT.
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {} /* Ждем пока PLL будет готов */
RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK); /* Переключаем системное тактирование на PLL */
while (RCC_GetSYSCLKSource() != 0x08) {} /* Ждем пока переключитьс¤ */
}
else /* Проблемы с HSE. Тут можно написать свой код, если надо что-то делать когда микроконтроллер не смог перейти на работу с внешним кварцом */
{
while (1) {} /* Пока тут заглушка - вечный цикл*/
}
Запускаете программу без отладчика, а потом во время работы подключаете отладчик например как написано здесь и выясняете где виснет.
Последний раз редактировалось Мурик Пн дек 17, 2018 21:04:47, всего редактировалось 2 раза.
[uquote="Мурик",url="/forum/viewtopic.php?p=3528972#p3528972"]Изучение AVR пошло во вред, а не на пользу. [/uquote]
а то типа в AVR нету аппаратного ШИМ-а) это скорее "изучение" такое вот было
Соединение BOOT0 с землёй даже вообще без резистора проблему не решает.
Я думаю, писатели библиотек проверяют свой код не во всех возможных настройках разных версий компиляторов,
а только на тех что по умолчанию ( "Oz image size" - это по умолчанию), и возможно только на компиляторе v5, отсюда такие чудеса!
У меня всегда недоумение вызывала возможность BOOTx выставить старт из RAM. Вот откуда там код может взяться при включении?
[uquote="dosikus",url="/forum/viewtopic.php?p=3529177#p3529177"]Гы , и все таки с бутами наверняка, было бы что с отладкой в RAM то был бы код а не данные..[/uquote]Так у него там как раз таки код. Это не могут быть огрызки FlashLoader? Ну потому что в прошивке у него такого не может быть.
Спойлер
проблема осталась - включение уровня оптимизации "O0" (фактически отключенная оптимизация) вместо "Oz image size" (которая по умолчанию)
в компиляторе v6 делает невозможной запуск прошивки из флэша кроме как из под отладчика.