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%
帮助的人:4595万
展开全部
value=GPIOB->IDR&0x00FF;
就这么简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-08-25 广告
根据公开信息,STM32F107的价格因型号、规格、封装和供应商等因素而异。在一些电子市场中,它的价格可能在**10.00-45.00元/PCS**之间。需要注意的是,这些价格可能不是最新的,因此请在购买前与供应商确认最新的价格和型号。 S... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
百度网友b752cc2
推荐于2018-03-07
知道答主
回答量:18
采纳率:0%
帮助的人:16.3万
展开全部
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%
帮助的人:2787万
展开全部
规则:
一、置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

提交
取消

辅 助

模 式