STm32 IDE utiliser HAL_UARTx. dans un second fichier .c
Bonjour à tous,
je débute avec stm32 IDE .
Je souhaiterais pouvoir utiliser la fonction ci dessous par exemple dans un fichier séparé du main.c
Code:
HAL_UART_Transmit(&huart2, (uint8_t *)"coucou", 6, 100);
D’après ce que j'ai compris je dois tout débord créer un couple .c et .h que je nommerai uart.c et uart.h étant donné que je cherche à envoyer une trame uart depuis un autre fichier .c
Dans mon main.c créer par cube MX j'ai donc ceci créer automatiquement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| UART_HandleTypeDef huart2;
int main(void)
{
HAL_Init();
---
MX_GPIO_Init();
MX_USART2_UART_Init();
---
---
---
while (1)
{
mon code
}
void MX_USART2_UART_Init(void)
{
huart2.Instance = USART2;
huart2.Init.BaudRate = 38400;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
} |
Comme j'ai créer un couple de fichier uart.c et uart.h
je rajoute ceci dans la portion include prévue a cet effet dans le fichier main.c.
ensuite je créer mon uart.h
Code:
1 2 3 4 5 6 7 8 9
| #ifndef UART_H_ /* Include guard */
#define UART_H_
#include <stdio.h>
void message(void); // prototype de focntion
#endif |
puis je créer mon uart.c
Code:
1 2 3 4 5 6 7
|
#include "uart.h" /* Include de mon header */
void message(void)
{
HAL_UART_Transmit(&huart2, (uint8_t *)"coucou", 6, 100);
} |
J'obtiens bien entendu un code erreur m'indiquant que l'argument &huart2 / error: 'huart2' undeclared (first use in this function)
J'ai donc essayé de faire connaitre cet argument en utilisant le mot "extern" en plaçant cette ligne de code de le fichier uart.c avec cette ligne de code :
Code:
extern UART_HandleTypeDef huart2;
Du coup je me retrouve ace une autre erreur
Code:
error: unknown type name 'UART_HandleTypeDef'
Je ne sais plus quoi faire.
Le but est donc de pouvoir utiliser la fonction HAL_UART_Transmit...... dans un fichier uart.c
Merci à vous si vous arrivez à éclairer ma lanterne pour faire fonctionner cette portion de code.