作业帮 > 综合 > 作业

本人刚接触STM32,定义了GPIO_TypeDef* GPIOx,则GPIOx表示一个指针吗?为何不是用*GPIOx

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/30 05:01:58
本人刚接触STM32,定义了GPIO_TypeDef* GPIOx,则GPIOx表示一个指针吗?为何不是用*GPIOx == GPIO
为何不是用(*GPIO==GPIOA)而是用(GPIO==GPIOA)
本人刚接触STM32,定义了GPIO_TypeDef* GPIOx,则GPIOx表示一个指针吗?为何不是用*GPIOx
#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++能更好的结合的一块。 以上是个人的实践心得,回答完毕!