请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2802|回复: 3

stm32 gpio如何取端口设置

[复制链接]

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2020-12-1 02:38:14 | 显示全部楼层 |阅读模式
1金钱
新手上路。在学习stm32的第一个例程的时候,寄存器点亮LED灯闪烁,有两句代码不明白,请教高手解答,感谢。
就是       

/*设置PIN口的输出模式*/

uint8_t pin
#define PIN_LED                 ((uint16_t)0xFF00)          //IO口操作一次16位
pin = PIN_LED & 0x00FF;//取低八位是否有设置
if(pin!=0x00)
{......}

pin = PIN_LED & 0x00FF这条语句一执行,pin不就等于0x0000了吗?怎么还能执行下一步呢?

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有2人回答

回复

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-12-1 09:03:19 | 显示全部楼层
哪里的代码,没有看到是
回复

使用道具 举报

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2020-12-3 01:38:27 | 显示全部楼层
admin 发表于 2020-12-1 09:03
哪里的代码,没有看到是

买的开发板的配套例程里的
#define PIN_LED ((init16_t)0xFF00)
pin = PIN_LED & 0x00FF;//取低八位是否有设置

        if (pin != 0x00)
        {
                for (count=0; count<8; count++)//一共设置8位
                {
                        if ((pin & 0x01) != 0x00)
                        {
                                GPIOx->CRL &= (~((uint32_t)0x0F << (count * 4)));
                                GPIOx->CRL |= ((uint32_t)GPIOMODE_LED << (count * 4));
                        }
                        pin >>= 1;
                }
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-28 18:44 , Processed in 0.087538 second(s), 34 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表