Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


logiciels:printf_stm32:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
logiciels:printf_stm32:accueil [2016/10/11 15:07]
jonathan [Tuto]
logiciels:printf_stm32:accueil [2017/08/29 11:25] (Version actuelle)
jonathan [Tuto]
Ligne 5: Ligne 5:
 ===== Tuto ===== ===== Tuto =====
  
-  - Mapper les pins de USART à l'aide de "CubeMX"+1. Mapper les pins de USART à l'aide de "CubeMX"
     * Repérer dans la documentation de votre carte les pins qui font le lien entre le microcontrôleur et le ST-Link. Pour vous aidez utiliser la fonction de recherche "Ctrl+F" et taper "UART communication" ou "USART communication".     * Repérer dans la documentation de votre carte les pins qui font le lien entre le microcontrôleur et le ST-Link. Pour vous aidez utiliser la fonction de recherche "Ctrl+F" et taper "UART communication" ou "USART communication".
     * Ouvrir "CubeMX" et activer la communication **"asynchrone"**.     * Ouvrir "CubeMX" et activer la communication **"asynchrone"**.
Ligne 14: Ligne 14:
        * //Parity// : **None**        * //Parity// : **None**
        * //StopBits// : **1**        * //StopBits// : **1**
-    * Finir par générer le projet.+    * Finir par générer le projet.\\ 
 + 
 +2. Ajouter le fichier source "syscalls.c" et des options de linkage.  
 +    * Le fichier "syscalls.c" ce trouve dans les exemples fournie via "CubeMX"  
 +    * Vous pouvez le trouvé grâce au fonctions de recherche de votre OS. 
 +    * Le copier et le placer dans le dossier src de votre projet. 
 +    * Editer le et commenté la ligne #define FreeRTOS. 
 +    * Déplacer vous dans le dossier ou ce trouve vos linker script  
 +    * Créer un fichier "**lib.ld**" et y placer ceci :  
 +<code c+> 
 + /* Placeholder to list other libraries required by the application. GROUP() */ 
 + GROUP( 
 +   libgcc.a 
 +   libg.a 
 +   libc.a 
 +   libm.a 
 +   libnosys.a 
 + )</code> 
 + 
 +3. Modifier le fichier de configuration de UART (USART.c): 
 +    * Ouvrir le fichier et placer ceci entre **/* USER CODE BEGIN 0 */** et **/* USER CODE END 0 */** : 
 +<code c+> 
 +#ifdef __GNUC__ 
 +/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf 
 +   set to 'Yes') calls __io_putchar() */ 
 +#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) 
 +#else 
 +#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) 
 +#endif /* __GNUC__ */</code> 
 + 
 +et coller ceci entre **/* USER CODE BEGIN 1 */** et **/* USER CODE END 1 */** :\\  
 +<code c+> 
 +/** 
 +  * @brief  Retargets the C library printf function to the USART. 
 +  * @param  None 
 +  * @retval None 
 +  */ 
 +PUTCHAR_PROTOTYPE 
 +
 +  /* Place your implementation of fputc here */ 
 +  /* e.g. write a character to the USART2 and Loop until the end of transmission */ 
 +  HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF); 
 + 
 +  return ch; 
 +}</code> 
 +     
 +Vérifier qu'il n'y est pas d'erreur au niveau de **HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);**\\ 
 +Si erreur il y a il faut récupérer la variable en haut du fichier nomé UART_HandleTypeDef **huart2**;\\ 
 + 
 +Finir en ajoutant #include <stdio.h> dans le "main.c".
      
-  - Activer les options de compilation :  +4. Activer les options de compilation et linker:  
-    * Faire "Alt+Entrer" sur le nom du projet ou clic droit-> properties. +   * Faire "Alt+Entrer" sur le nom du projet ou clic droit-> properties. 
-    * Dans C/C++ Build -> Settings -> Tool settings -> Cross ARM C Linker -> Miscellaneous\\ +   * Dans C/C++ Build -> Settings -> Tool settings -> Cross ARM C Linker -> MiscellaneousCocher les options suivantes :  
-Cocher les options suivantes :  +      * Use newlib-nano (--specs=nano.specs) 
-       * Use newlib-nano (--specs=nano.specs) +      * Use float with nano printf (-u_printf_float) 
-       * Use float with nano printf (-u_printf_float)+   * Dans C/C++ Build -> Settings -> Tool settings -> Cross ARM C Linker -> General.  
 +   * Ajouter le chemin vers le fichier "lib.ld" 
 + 
 +5. Test. 
 +   * Placer un text dans le main.c 
 +exemple :  
 +<code c+> 
 +printf("salut \n"); 
 +      HAL_Delay(1000); 
 +      </code> 
 +      Le retour chariot et important!!!
/home/resonancg/www/wiki/data/attic/logiciels/printf_stm32/accueil.1476191228.txt.gz · Dernière modification: 2016/10/11 15:07 de jonathan