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

2023-05-16

匿名用户

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++能更好的结合的一块。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • ubuntu sudo apt-get update无法解析域名

    问题 sudo apt get update时提示如下 xff1a 然后cat etc resolv conf 查看dns server发现里面是空的 解决办法 xff1a 1 永久有效 sudo vi etc resolvconf res
  • IDEA 报错These modules have been removed from Maven stucture

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 当我们从IDEA中删除一个module后 xff0c 我再新建同名的module时发现提示 These modules have been removed from Mav
  • nginx: [emerg] BIO_new_file("/etc/nginx/ssl_key/server.crt") failed (SSL: error:02001002:syste

    Centos 7 5 nginx 43 web集群配置https报错 报错信息 root 64 lb01 conf d nginx t nginx emerg BIO new file 34 etc nginx ssl key server
  • 永久关闭swap分区

    参考文章 xff1a https blog 51cto com 6923450605400 735323 xff08 1 xff09 临时关闭swap分区 重启失效 swapoff a xff08 2 xff09 永久关闭swap分区 se
  • querySelector() 方法

    返回文档中匹配指定 CSS 选择器的一个元素 虽然IE8中没有getElementsByClassName 但可以用querySelector 代替 注意 xff1a querySelector 方法仅仅返回匹配指定选择器的第一个元素 如果
  • 《Programming in Lua 3》读书笔记(二十五)

    日期 xff1a 2014 8 11 Part The C API 29 User Defined Types in C 在之前的例子里 xff0c 已经介绍过如果通过用C写函数来扩展Lua 在本章 xff0c 将会介绍通过用C写新的类型来
  • EntityFramework

    How to Call StoreProcedure http www tudou com programs view 0WtDy50Hbzs target 61 blank If it not work see http stackove
  • HOOK技术的一些简单总结

    好久没写博客了 xff0c 一个月一篇还是要尽量保证 xff0c 今天谈下Hook技术 在Window平台上开发任何稍微底层一点的东西 xff0c 基本上都是Hook满天飞 xff0c 普通应用程序如此 xff0c 安全软件更是如此 xff
  • windows2000上如何跑MSN

    WINDOWS2000上一直可以跑MSN的 LP公司还在用可怜的2000 xff0d xff0d 在9月13日以前 xff0c 我就一直这样与LP MSN联系 但之后就不行了 xff0c 直到今天 xff0c LP就没能再登录MSN 兹事体
  • 30岁人生进度条_30岁前,人生可以靠努力,30岁后,人生更需要一些“觉醒”

    慈怀女子 偶然看到胡歌一位粉丝的留言 xff0c 触动很深 入行15年 xff0c 如今的胡歌 xff0c 已活成了百万粉丝心中的 灯塔 24岁之前 xff0c 胡歌的青春几乎是开挂的 高中起就拍广告 xff0c 迅速在上海广告界蹿红 大二
  • win10环境安装TensorFlow2.0 - 吴恩达视频-修复版

    文章整体参考吴恩达老师的视频 xff0c 见如下 https www bilibili com video BV19E411Y7Kw p 61 4 实际结果 xff1a 不可行 xff01 版本安装后1 1 0 xff01 本文提供解决方案
  • tensorflow2.0入门与实战(笔记) 独热编码与交叉熵损失函数

    百度的独热编码定义 独热编码即 One Hot 编码 xff0c 又称一位有效编码 xff0c 其方法是使用N位状态寄存器来对N个状态进行编码 xff0c 每个状态都有它独立的寄存器位 xff0c 并且在任意时候 xff0c 其中只有一位有
  • 树莓派基础信息

    默认的用户名 pi 默认的密码是 raspberry 如果SSH连接别拒绝 xff0c 可能要修改以下密码 xff0c 使用命令sudo passwd pi aptitude可以解决安装包依赖问题
  • ESP32+arduino开发基础信息

    开发环境准备 官方的开发环境配置指导 xff1a Installing Arduino ESP32 2 0 2 documentation 实测可用 xff0c 其中在IDE首选项中增加的URL xff0c development和stab
  • git常用命令汇总

    Git本地操作 git init初始化git库git add添加文件git rm删除文件git commit m 34 xxxx 34 提交修改 xff0c 并增加提交日志git status查看版本库状态git log查看近期提交记录gi
  • 移植python3到ARM平台的OK6410开发板

    1 下载 python3 2 2 的源码 源码下载地址 xff1a http www python org ftp python 3 2 2 Python 3 2 2 tgz xff08 1 xff09 在 Ubuntu 上必须安装同版本的
  • 串口通信校验方式(even,odd,space,mark) 分类: 开...

    无校验 xff08 no parity xff09 奇校验 xff08 odd parity xff09 xff1a 如果字符数据位中 34 1 34 的数目是偶数 xff0c 校验位为 34 1 34 xff0c 如果 34 1 34 的
  • alias 命令的用法/相对路径和绝对路径/cd命令/rmdir,mkdir 创建和删除命令/rm命令...

    alias 命令的用法 相对路径和绝对路径 cd命令 rmdir xff0c mkdir 创建和删除命令 rm命令 alias是用做别名用 如下 xff1a root 64 alex alias alias cp 61 39 cp i 39
  • HTTP基础认证Basic Authentication

    HTTP基础认证Basic Authentication Basic Authentication是一种HTTP访问控制方式 xff0c 用于限制对网站资源的访问 这种方式不需要Cookie和Session xff0c 只需要客户端发起请求
  • c语言中结构体对齐详解

    为什么要对齐 现代计算机中内存空间都是按照byte划分的 xff0c 从理论上讲似乎对任何类型的变量的访问可以从任何地址开始 xff0c 但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问 xff0c 这就需要各种类型数据按照一

随机推荐