gpio_typedef_请教高手: 本人刚接触STM32,定义了GPIO_TypeDef* GPIOx,则GPIOx表示一个指针吗?为何不是用*GPIOx == GPIO...

匿名用户

1级

2012-04-20 回答

#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)

这是在stm32f10x.h里定义的,看这个定义你就应该明白了,GPIOA本身也是一个指针

追问:

谢谢你的回答!想再请教个几个问题

1 因为资料库里面各个外设的函数实在太多,都搞到头脑好混乱的感觉,本人又需要短时间内把它弄懂并会使用它,有什么好的办法吗?

2 那些库里面的文件具体有那些是不用我们修改直接拿来用的?那些是需要我们自己在用的过程需要修改的呢?

3 另外几乎每个文件里面都有 #ifdef __cplusplus

extern "C" {

#endif

可我没找到程序里那个地方定义了__cplusplus 啊?这又是怎么回事呢?

谢谢

追答:

第一个问题:http://wenku.baidu.com/view/a7f51720192e45361066f5d0.html,打开这个链接,是固件库的使用方法,但是是3.3版本的。

其实给你个最好的建议,我个人认为是最快的,就是看源文件中每个固件库上方的英文注释,能让你最快入手,另外,加几个QQ群,问问群里的高手。

第二个问题,是需要在用的过程修改的,固件库里的函数是通用的,但是你要根据你的具体环节配置,比如说,你要配置GPIOA的第9,10脚为USRAT1的TX和RX,就需要调用函数,但是具体的参数要自己改

第三个问题:

我曾经回答过别的网友,这里粘贴过来给你看看:

我们的C语言有个进化版,叫C++,这个想必楼主知道,Keil MDK是支持C++编程的,也就是说,你可以用C语言或者C++写你的程序,都可以。

但是,有一个问题,就是头文件的问题,C语言写的头文件C++是不认识的,需要转换一下,这个转换的方法就是加上extern "C"

#ifdef __cplusplus

extern "C" {

这句话意思是,如果你定义了“__cplusplus”这个宏,说明你的意图是想在C++文件中调用这个头文件,我前头说了,C语言的头文件C++是不认识的,怎么办呢,就加上

extern "C" {。。。。。}

告诉C++文件,大括号里面的东西是用C语言写的,然后C++文件就认识了,就能调用这个头文件里的东西了,

extern "C" {

的存在,使得C语言和C++能更好的结合的一块。

以上是个人的实践心得,回答完毕!

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

Resphoina39

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值