STM32如何实现同时读一个端口的中某几个管脚的数据

我用STM32的PB端口作为数据线,0~7为输入,8~15为输出,现在想读出0~7端口的电平值赋给Value,那么这个函数该怎么写?... 我用STM32的PB端口作为数据线,0~7为输入,8~15为输出,现在想读出0~7端口的电平值赋给Value,那么这个函数该怎么写? 展开
 我来答
ATF144X
2013-10-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4651万
展开全部
value=GPIOB->IDR&0x00FF;
就这么简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F207是一款非常优秀的微控制器芯片,它是ST(意法半导体)最新推出的基于90纳米工艺的STM32F2系列芯片之一。STM32F207芯片内置了丰富的外设接口,包括ADC、DAC、UART、SPI、I2C等,可以轻松实现各种复杂的... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
百度网友b752cc2
推荐于2018-03-07
知道答主
回答量:18
采纳率:0%
帮助的人:16.5万
展开全部
u16 Value = GPIO_ReadInputData(GPIOB);
Value &= 0x00ff;
没试过,不知道写的对不对
追问
应该不是这样写吧,端口8~15为输出,要读它的端口电平应该是GPIO_ReadoutputData()这个函数吧?我现在很怀疑这样的设计能不能实现!
追答
不是说读出0-7输入端口的电平 如果是8-15输出端口,那就value = (GPIOB->ODR & 0xFF00)>>2;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2016-07-02 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2922万
展开全部
规则:
一、置GPIOD->BSRR低16位的某位为'1',则对应的I/O端口置'1';而置GPIOD->BSRR低16位的某位为'0',则对应的I/O端口不变。
二、置GPIOD->BSRR高16位的某位为'1',则对应的I/O端口置'0';而置GPIOD->BSRR高16位的某位为'0',则对应的I/O端口不变。
三、置GPIOD->BRR低16位的某位为'1',则对应的I/O端口置'0';而置GPIOD->BRR低16位的某位为'0',则对应的I/O端口不变。

例如:
1)要设置D0、D5、D10、D11为高,而保持其它I/O口不变,只需一行语句:
GPIOD->BSRR = 0x0C21;// 使用规则一

2)要设置D1、D3、D14、D15为低,而保持其它I/O口不变,只需一行语句:
GPIOD->BRR = 0xC00A;// 使用规则三

3)要同时设置D0、D5、D10、D11为高,设置D1、D3、D14、D15为低,而保持其它I/O口不变,也只需一行语句:
GPIOD->BSRR = 0xC00A0C21;// 使用规则一和规则二
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式