Чето лыжи не едут. Какой то странны глюк с гцц usart4.C: "main.h" "usart4.h" "IO.h" "string.h" "stm32f1xx.h" QueueHandle_t USART4_In; QueueHandle_t USART4_Out; USE_RS485_UART4 .... все хидеры ртоски сунуты в main.h пытаюсь QueueHandle_t USART4_In; QueueHandle_t USART4_Out; утащить в хидер "usart4.h" компилятор перестает видеть типы ртоса на них QueueHandle_t при этом ТОЧНО такая же херня в другом файле работает с какого хера отвалилась видимость хидеров ртоса?
Комментарии: 10
Tiny
Определение USART4_In в хэдер перенести?
Anonim
да это очередь которая видна должна быть по всему проекту где подключен усарт
Cyberzx
ну ещё если это Си, то нужно писать struct QueueHandle_t
Tiny
Ну глобальные переменные в хэдере это моветон
Anonim
экстернами их тащить куда более мудово
Cyberzx
а в хедере extern?
Anonim
нет проблема то не в том где и как. А в том что он сука тип не видит
Tiny
Вообще странно, вроде работать должно, ошибка именно при компиляции usart4.C вылазит?
Anonim
причем только в этом модуле. В остальных видит Вот, например, хидер степпера void Stepper_Init(void); void st_MotorON(void); void st_MotorOFF(void); QueueHandle_t qMotorR,qMotorL,qMotorF,qMotorB,qMotorS; SemaphoreHandle_t StopMotorR,StopMotorL,StopMotorF,StopMotorB,StopMotorS; SemaphoreHandle_t OK_MotorR,OK_MotorL,OK_MotorF,OK_MotorB,OK_MotorS; и его сишник "main.h" "stepper.h" все видится а в уартовском нет
Cyberzx
ну надо смотреть что получается после препроцесора