Catégories
Liens
Ceci est une ancienne révision du document !
Selon les environnements de développement les “printf” ne sont pas actif pour les STM32.
1. Mapper les pins de USART à l'aide de “CubeMX”
2. Ajouter le fichier source “syscalls.c” et des options de linkage.
* Placeholder to list other libraries required by the application.
GROUP( )
*/
GROUP(
libgcc.a libg.a libc.a libm.a libnosys.a
)
3. Modifier le fichier de configuration de UART (USART.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__ */
et coller ceci entre /* USER CODE BEGIN 1 */ et /* USER CODE END 1 */ :
<blockquote>/
* @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;
}</blockquote>
* 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**;
4. Activer les options de compilation et linker: