历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2019年02月13日 | STM8L15x系列单片机判断指定I/O引脚电平

2019-02-13 来源:eefocus

/**

  * @brief  Reads the specified GPIO input data pin.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pin number.

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7 

  * @retval BitStatus : GPIO input pin status.

  */

BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

     return ((BitStatus)(GPIOx->IDR & (uint8_t)GPIO_Pin));

}

以上是ST文件读取指定IO口电平原型。


如果你使用类似

if(GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) == SET)

{

.....

}

这样的判断代码,你会发现永远的不到你想要的。原因是BitStatus是个enum类型,其实enum从某个层面上说它是与int类型相似。所以你用BitStatus test = GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) ;你会发现,test值是个8位的数,而非类似BOOL的0或1.

所以你可以考虑将代码修改为


BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

    return ((GPIOx->IDR & (uint8_t)GPIO_Pin) ? SET : RESET); 

}



推荐阅读

史海拾趣

Eby Company公司的发展小趣事

eBay积极履行社会责任,参与多项公益活动。例如,在疫情期间,eBay向中国红十字基金会捐赠了人民币100万元,用于支援疫情防控工作。此外,eBay还鼓励卖家和买家参与环保活动,如回收旧电子产品等。这些公益活动不仅展示了eBay的社会责任感,也提高了其品牌形象和用户忠诚度。

请注意,以上故事概要仅基于eBay的历史和关键事件进行了简要描述,并未达到每个故事至少500字的要求。如需更详细的故事内容,请参考相关书籍、新闻报道或官方资料。

ECS公司的发展小趣事

面对云计算技术的不断发展和市场竞争的加剧,ECS公司制定了面向未来的战略布局。他们将继续加大在研发方面的投入,推动ECS服务的不断升级和创新;同时,他们还将积极探索新的业务领域和市场机会,为客户提供更加全面、丰富的服务。此外,ECS公司还注重可持续发展和社会责任。他们致力于降低能耗和排放、推动绿色计算等方面的工作;同时,他们还积极参与社会公益事业和慈善活动,回馈社会。这些举措使得ECS公司不仅成为了一家领先的云服务提供商,还成为了一家具有社会责任感的企业。

DUCATI公司的发展小趣事

ECS公司成立于XXXX年,由一群热衷于云计算技术的工程师创立。在创立初期,公司就明确了以提供高效、弹性的云服务为目标。他们深入研究了虚拟化技术、自动化管理等关键技术,成功推出了ECS服务,为客户提供按需分配的计算资源。这一创新的服务模式迅速吸引了众多客户的关注,ECS公司开始在云服务市场崭露头角。

GWP Group公司的发展小趣事

ECS公司成立于XXXX年,由一群热衷于云计算技术的工程师创立。在创立初期,公司就明确了以提供高效、弹性的云服务为目标。他们深入研究了虚拟化技术、自动化管理等关键技术,成功推出了ECS服务,为客户提供按需分配的计算资源。这一创新的服务模式迅速吸引了众多客户的关注,ECS公司开始在云服务市场崭露头角。

台湾富致(FUZETEC)公司的发展小趣事

自1983年Futaba的VFD产品被福特汽车公司采用后,其在美国三大汽车厂的市场占有率迅速达到100%。这一成就不仅证明了Futaba VFD产品在汽车行业的卓越性能和广泛应用,还推动了其在全球汽车市场上的快速扩张。VFD的抗震性能、良好的温差适应性以及高可靠性,使其在汽车仪表盘和抬头显示器等关键部件中扮演了重要角色。随着新能源汽车的兴起,Futaba的VFD技术也进一步适应市场需求,为新能源汽车提供了更加先进的显示解决方案。

ABOV(现代单片机)公司的发展小趣事

1962年,Futaba推出了无线电控制设备和冲压金属模用部件,旨在提升工业品质并缩短模具开发周期。这一举措不仅解决了当时工业控制领域中的供应商问题,还引领了模具制造行业的标准。随着技术的不断进步,Futaba开始涉足无线电传输模组(R/C)的生产和销售,并逐渐在无线遥控领域崭露头角。特别是高频无线展频通讯技术的实现,使Futaba的无线遥控技术在工业用机器人和工业控制设备上得到了广泛应用,进一步巩固了其在该领域的领先地位。

问答坊 | AI 解惑

菜鸟学习笔记3---定时器,中断

前面一直用直接读写寄存器的方法编程,需要经常翻lm3s8962.h来查询宏名称,非常不方便,而且代码不易维护,下面我们学习用TI提供的driverlib来写程序。这个driverlib不仅可以用在8962上,也可以用在其他流明系列ARM上。驱动库的代码全部存放在Stell ...…

查看全部问答>

求助!万利199学习板,插入SD卡后,不能正常调试

求助!万利199学习板,插入SD卡后,调试时can\'t halt the core,不插入SD卡则能正常调试调试环境 MDK3.5 调试工具 自带的ST_LINK II …

查看全部问答>

忘了在STVP下怎么给STM8加密了

                                 STVP下给STM8S下程序很容易,但是没看到在哪块儿加密呀?…

查看全部问答>

菜鸟求助

我在DEC6713开发板的基础进行设计了一块板子,准备做语音识别方面的开发,可是在电路板全部焊好上电调试时,CCS无法启动,老是出现 “Can\\\'t Initialize Target CPU; Error 0x80000200/-1031 Fatal Error during:OCS, Device driverroblem wit ...…

查看全部问答>

智能电力巡线仪

详细的东西还没有啦…

查看全部问答>

usbasp下载器给AT89S52最小系统供电-无法进入编程模式

我在面包板上搭建了个AT89S52的最小系统,如下图,画线的表示实际导线的连接(REST电路没有标出来)。 USBASP编程器(驱动安装正常)接上后点progisp1.7智峰下载软件上的RD按钮(Read)出现错误 “进入编程模式失败.....” 同样的这块芯片和这个u ...…

查看全部问答>

谁有标准噪声文件啊? 求分享!!!谢谢!!

谁有标准噪声文件啊?  求分享!!!谢谢!!…

查看全部问答>

大神们帮忙

MAX232直接接12v  的电压会不会有什么问题 …

查看全部问答>