0
votes

DataTypes inconnus IRQN_TYPE,

Lorsque vous essayez de construire mon projet, je reçois des erreurs comme: xxx pré>

ou p> xxx pré>

donc il semble que irqn_type et __nvic_prio_bits soient Non défini. P>

Autant que je sache, les types de données sont définis dans le fichier STM32F407XX.H et je dis que vous dites déjà où trouver: -Idrivers / CMSIS / Device / ST / STM32F4XX / Inclure p>


EDIT H3>

Je viens de voir les premières erreurs sont celles-ci: p>

In file included from Src/dsp/dsp.c:4:
Drivers/CMSIS/Include/core_cm4.h:1688:39: error: unknown type name 'IRQn_Type'; did you mean 'ITM_Type'?
 1688 | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)


0 commentaires

3 Réponses :


1
votes

Pour vous assurer que le fichier d'en-tête de votre microcontrôleur particulier est inclus, vous devez définir la macro correspondante. Dans votre cas, vous devez vous assurer que -DSTM32F407XX est transmis à votre compilateur. Comment exactement vous allez cela dépendra de votre environnement de construction.

Une fois que vous l'avez fait, le fichier d'en-tête correspondant sera inclus automatiquement via stm32f4xx.h .

Si vous vous demandez comment vous assurer que stm32f4xx.h , à son tour, est inclus - et s'il doit être inclus explicitement dans vos propres fichiers source ...

Typiquement, vous n'aurez pas besoin d'inclure explicitement stm32f4xx.h . Tant que vous incluez le fichier d'en-tête pour l'un des périphériques standard, tels que le RCC ou GPIO, il sera automatiquement inclus.

La chaîne inclut peut-elle ressembler à quelque chose comme suit:

  • stm32f4xx_rcc.h <- Inclure dans vos fichiers source
    • stm32f4xx.h
      • stm32f407xx.h

        Les deux derniers sont automatiques - aussi longtemps que -DSTM32F407XX est transmis dans vos drapeaux de pré-processeur.


3 commentaires

Désolé, cela mérite d'être mentionné. L'indicateur -DSTM32F407XX est défini. (Sinon, j'aurais aussi eu l'erreur suivante: "Veuillez sélectionner d'abord le périphérique cible STM32F4XX utilisé dans votre application (dans le fichier STM32F4XX.H)"). Toute autre idée?


@Drimer: Pouvez-vous publier les parties pertinentes de votre maquillage?


J'ai modifié mes questions et j'apprécierais votre aide.



0
votes

core_cm4.h n'est pas censé être inclus directement.

à la place, vous #define la ligne MCU ligne et #include l'en-tête de la série MCU . xxx

qui inclurait stm32f407xx.h qui À son tour inclut core_cm4.h .

y compris stm32f407xx.h directement, sans le #define pourrait fonctionner aussi. < / p>


1 commentaires

Hey. Merci pour votre réponse. J'ai ajouté ces lignes mais j'ai toujours des problèmes là-bas. J'ai modifié ma question. Pouvez-vous regarder à nouveau?



0
votes

irqn_type est essentiellement une énumération qui contient la valeur de tous les types d'interruptions que le contrôleur a. Par exemple xxx

s'il n'est pas présent, votre fichier d'en-tête signifie que le fichier est corrompu ou que quelqu'un avait apporté des modifications, c'est ce fichier. Remplacez votre fichier par un nouveau peut résoudre votre problème.


0 commentaires