野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 850|回复: 4

不懂就问,报错刚开始还有,一会又没了是什么操作

[复制链接]
发表于 2024-1-8 19:53:30 | 显示全部楼层 |阅读模式
       

学习自己写库-构建库函数模型中一直报GPIO_TypeDef 和uint16_t 的错误如图一
但是这个错误进入stm32f10x_gpio.h中时候还会显示报错,但是一会就会自己没了,但如果回到stm32f10x_gpio.c中报错依然存在,去.h查看时候依然如前面所说。
不懂就问啊,孩子很奇怪,这个GPIO_TypeDef 和uint16_t 确实是定义了的,有没有大哥教教。

野火论坛202401081953227018..png
野火论坛202401081947558019..png
野火论坛202401081947512389..png
野火论坛202401081947469056..png
回复

使用道具 举报

发表于 2024-1-9 09:17:37 | 显示全部楼层
你.c文件加 #ifndef __STM32F10X_H ... #endif ,如果没猜错你的stm32f10x.h文件里也有这个宏定义,所以你在编译这个.c文件时因为已经定义过__STM32F10X_H这个宏了,在stm32f10x.h会判断这个宏定义过,所以.h中的定义都不会编译.那自然会报错了.
回复 支持 反对

使用道具 举报

发表于 2024-1-9 09:19:58 | 显示全部楼层
如果你.c文件与stm32f10x.h都使用了这个宏,那么注定.h中#ifndef __STM32F10X_H ... #endif内的代码,与.c文件内#ifndef __STM32F10X_H ... #endif中的只编译一个,谁编译就看谁先被编译器调用了
回复 支持 反对

使用道具 举报

发表于 2024-1-9 09:23:43 | 显示全部楼层
你可以尝试修改为#ifndef __STM32F10X_H
#include "stm32f10x.h"
#endif
void GPIO_SetBits(............
或者干脆
#include "stm32f10x.h"
void GPIO_SetBits(............
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-9 20:55:16 | 显示全部楼层
Nalimca 发表于 2024-1-9 09:23
你可以尝试修改为#ifndef __STM32F10X_H
#include "stm32f10x.h"
#endif

嗯嗯理解了,感谢老哥
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 01:28 , Processed in 0.145766 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表