GPIOx->BSRR = (((uint32_t)0x01) << pinpos);

GPIOx->BSRR=(((uint32_t)0x01)<<pinpos)里的(((uint32_t)0x01)是什么意思?... GPIOx->BSRR = (((uint32_t)0x01) << pinpos)里的(((uint32_t)0x01) 是什么意思? 展开
 我来答
百度网友e3693e5
2013-07-30 · TA获得超过314个赞
知道答主
回答量:144
采纳率:0%
帮助的人:67.8万
展开全部
0x01是8位的 二进制是00000001 这里要转成32位的 即0x0001,这句话的意思是将这个1转换成32位之后左移pinpos这个变量值的这么多位!串口编程啊,孩子,这个GPIO口的BSRR寄存器置位操作!
更多追问追答
追问
(((uint32_t)0x01) << pinpos)为什么就可以把0x01转换成unsigned int类型的呢 有什么固定的转换的格式吗?

uint32_t后面的_t是什意思呢
追答
我X!uint32_t这个是整个的一个数据类型,系统使用typedef 定义的,按照字面上来说这个是个unsigned int 型的数据!  typedef uint32_t unsigned int。。。哪那么多为什么,uint32_t是个整体,就是一个类型名罢了! 我之前说了!BSRR是个32位的寄存器!你的数据时8位的,你要对32位进行操作只有进行扩充才行!这。。。。。我感觉你还是去看看书在说,假如你连这个都看不懂,我觉得你的C语言学得相当有问题,并且你不适合对底层硬件接口的编程!你的知识差得太多了!
lyklau
2013-07-30 · TA获得超过192个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:105万
展开全部
(((uint32_t)0x01) 他的意思是将 0x01也就是1这个值转换成unsigned int型类型
更多追问追答
追问
为什么要将 0x01也就是1这个值转换成unsigned int型类型的呢?
追答
这个问题可能是因为GPIOx->BSRR 这个类型是unsigned int 的原因
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2bb95ca
2019-04-08
知道答主
回答量:2
采纳率:0%
帮助的人:1367
展开全部
((uint32_t)0x01) 在C语言中属于强制类型转换 uint32_t是用typedef自定义的数据类型,你该好好学一下C语言了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式