Bonjour, j'ai le prototype de fonction suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
	/**
         * @brief       Envoi une chaine de caractere sur l'USARTx. Fonction BLOCANTE si un caractere est deja en cours d'envoi.
         * @func        void UART_putc(UART_HandleTypeDef * UART_Handle, char c)
         * @param       str : la chaine de caractère Ã* envoyer
         * @param       USARTx : USART1, USART2 ou USART6
         */
	void UART_puts(uart_id_e uart_id, uint8_t * str, uint8_t len);
Je veux ecrire une chaine de caractere dans l'uart donc j'ai code cela:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
char str[20];
void measure(void){
	sprintf(str,"AT$SF=A10A\n");
	UART_puts(UART2_ID, str, sizeof(str));
	HAL_Delay(3000);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
../Src/main.c: In function 'measure':
../Src/main.c:241:22: warning: pointer targets in passing argument 2 of 'UART_puts' differ in signedness [-Wpointer-sign]
  UART_puts(UART2_ID, str, sizeof(str));
                      ^~~
Sauf que le 2eme argument doit etre de type uint8_t, j'ai tente des trucs avec la fonction atoi(); mais je n'arrive pas a un resultat correct, comment passer d'un char a un uint8_t ?