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:25]
jonathan [Tuto]
logiciels:printf_stm32:accueil [2017/08/29 11:25] (Version actuelle)
jonathan [Tuto]
Ligne 23: Ligne 23:
     * Déplacer vous dans le dossier ou ce trouve vos linker script      * Déplacer vous dans le dossier ou ce trouve vos linker script 
     * Créer un fichier "**lib.ld**" et y placer ceci :      * Créer un fichier "**lib.ld**" et y placer ceci : 
- +<code c+> 
- + /* Placeholder to list other libraries required by the application. GROUP() */
-<blockquote> * Placeholder to list other libraries required by the application. +
-  +
-GROUP( +
-) +
- +
- */ +
- +
- +
  GROUP(  GROUP(
    libgcc.a    libgcc.a
Ligne 39: Ligne 31:
    libm.a    libm.a
    libnosys.a    libnosys.a
- )</blockquote>+ )</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".
      
-3. 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. Cocher les options suivantes :  +   * Dans C/C++ Build -> Settings -> Tool settings -> Cross ARM C Linker -> Miscellaneous. 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.1476192328.txt.gz · Dernière modification: 2016/10/11 15:25 de jonathan