STM32: pouvez utiliser intégré chargeur de démarrage pour charger mon code, mais rien ne se passe

A

allanvv

Guest
J'ai fait un forum avec une STM32F103C8T6. Je peux utiliser avec succès l'UART de programmer et de vérifier la mémoire flash embarquée, avec le haut-bootloader. Mais lorsque je réinitialise et je boot en flash, rien ne fonctionne. Mon code tourne seulement on / off une GPIO que je suis suivi avec un champ d'application. J'ai vérifié que l'horloge externe fonctionne correctement (8MHz). Il semble par défaut qu'il utilise l'oscillateur interne, alors j'ai essayé de le configurer pour utiliser l'oscillateur externe en décommentant "# define SYSCLK_FREQ_HSE HSE_Value" mais toujours rien ne se passe lors de la réinitialisation. Voici mon code:
Code:
 int main (void) {SystemInit (); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init (GPIOA, & GPIO_InitStructure); GPIO_WriteBit (GPIOA, GPIO_Pin_15 , 1); while (1) {GPIO_WriteBit (GPIOA, GPIO_Pin_15, 1); GPIO_WriteBit (GPIOA, GPIO_Pin_15, 0);}}
edit: C'est avec un bras gcc 4.5.2. J'ai utilisé cette toolchain avec succès sur une planche à STR7 dans le passé. J'ai aussi essayé avec toolchain CodeSourcery, mais toujours pas de résultats.
 
pouvez-vous essayer cela? RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA, ENABLE); BSRR GPIOA-> = GPIO_Pin_15; BRR GPIOA-> = GPIO_Pin_15;
 
Il s'avère que la question était dans le script éditeur de liens et le code assembleur de démarrage. J'ai essayé de celles utilisées dans ces projets: [url = http://gandalf.arubi.uni-kl.de/avr_projects/arm_projects/index_cortex.html] ARMv7 Cortex M3 exemples [/url] et cela a fonctionné parfaitement.
 
Avez-vous pensé à mettre en place de l'horloge et l'horloge periphirals correctement? Je peux vous conseillons de jeter un oeil à ces deux articles du blog sur configuration de l'horloge, à la fois pour l'horloge interne et externe. [Url = http://blog.tkjelectronics.dk/2010/02/stm32-internal-8mhz-clock-setup-routine/] TKJ Electronics STM32 »- Horloge interne 8MHz routine d'installation [/url] [url = http:/ / blog.tkjelectronics.dk/2010/02/stm32-overclocking /] TKJ Electronics »STM32 - [Overclocking / url] Vous pouvez également télécharger mon projet modèle, qui inclut quelques routines d'installation différents, ce qui le rend beaucoup plus facile à Pour commencer: [URL = "http://blog.tkjelectronics.dk/wp-content/uploads/STM32_Template_05-12-10.zip"] http://blog.tkjelectronics.dk/wp-content/uploads/STM32_Template_05- 12-10.zip [/URL]
 
Une chose - Pourquoi dites-vous que la vitesse d'horloge lors de l'exécution de l'oscillateur interne est limitée à 36MHz? Vous pouvez définir le multiplicateur à 16x, et puis ça va fonctionner à 64MHz. Je ne pouvais pas trouver quelque chose dans la feuille de données qui a une fréquence max différentes pour vs interne oscillateur externe. Egalement dans la page de l'offre actuelle, l'un des tests qu'ils font, c'est pour l'oscillateur interne 64MHz.
 
Oui, vous pouvez définir le multiplicateur à 16x, mais nous n'avons pas eu de succès avec ce - le STM32 se instable ou n'a même pas été capable de courir!
 

Welcome to EDABoard.com

Sponsor

Back
Top