Я пытаюсь вызвать HAL_UART_Transmit () из моего пользовательского файла SA145.c, что вызывает ошибку: идентификатор huart1 us undefined. huart1 объявлен как extern в main.c. Как вызвать HAL_UART_Transmit () из файла, отличного от main.c
STM32 HAL Вызов HAL_UART_Transmit из другого файла, кроме main.c
Ответы (1)
ошибка: идентификатор huart1 us undefined.
huart1 объявлен как extern в main.c.
Что-то должно быть объявлено как extern
в файле, где это, говоря обычным языком, заимствовано.
Но он должен действительно существовать (т.е. не быть extern
) - это какой-то файл. В противном случае компоновщик найдет только попытки использовать его, но никогда не найдет его для использования.
В то же время вы, возможно, действительно не захотите вызывать базовую последовательную функцию из множества мест, а скорее захотите обернуть ее чем-то подходящим для того, почему вы ее вызываете, например, чтобы отправлять данные на периферийное устройство или создавать отладочную распечатку и т. д. Тогда вы можете сохранить аргумент только в одном файле, и вам не придется делиться им.