历史上的今天
返回首页

历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2018年10月10日 | STM8S库GPIO_ReadInputPin函数问题

2018-10-10 来源:eefocus

ST官网推出了库函数操作,大大方便了用户,但是库函数有一些问题,例如

 

1.库函数GPIO_ReadInputPin问题

 

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

BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

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

}

 

当你在程序中调用

if(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_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

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

}


推荐阅读

史海拾趣

Akustica(Bosch)公司的发展小趣事

Akustica 公司是一家微机电系统(MEMS)技术公司,于2001年成立于美国匹兹堡,后来成为博世集团(Bosch)的子公司。以下是关于 Akustica 公司发展的五个相关故事:

  1. 公司成立和早期发展: Akustica 公司成立于2001年,由匹兹堡卡内基梅隆大学的研究团队创建。该公司专注于 MEMS 技术的研发和创新,致力于开发高性能的声学传感器和系统解决方案。在成立初期,Akustica 聚焦于市场需求日益增长的消费电子和汽车应用领域,并不断推出创新产品,赢得了市场认可。

  2. 博世收购: 随着市场竞争的加剧和技术进步的不断推动,Akustica 公司于2009年被博世集团收购。作为全球领先的技术和服务供应商,博世集团的收购加速了 Akustica 的发展步伐,并为其提供了更广阔的市场和资源,以加速产品创新和业务扩展。

  3. 技术创新和产品发展: 在博世集团的支持下,Akustica 公司不断进行技术创新和产品开发,推出了一系列声学传感器产品,包括麦克风、扬声器和超声波传感器等。这些产品在消费电子、汽车、工业和医疗等领域得到了广泛应用,为用户提供了更优质的声音和声学体验。

  4. 市场拓展和全球业务: 随着技术和产品的不断进步,Akustica 公司逐渐拓展了全球业务,并与各行各业的客户建立了合作关系。公司在美国、欧洲和亚洲等地建立了销售和服务网络,以更好地满足客户的需求,并开拓新的市场机会。

  5. 持续发展和未来展望: Akustica 公司作为博世集团的一部分,继续致力于声学传感器技术和产品的创新,不断提升产品性能和功能,以满足不断变化的市场需求。未来,公司将继续加强在智能手机、智能家居、车载系统、工业自动化和医疗设备等领域的业务拓展,助力客户实现更加智能、便捷和安全的生活和工作环境。

Blue Sky Research公司的发展小趣事

作为一家有社会责任感的企业,Blue Sky Research始终关注环境保护和可持续发展。公司在生产过程中采用环保材料和工艺,减少对环境的影响。同时,公司还积极参与公益事业,为社会做出贡献。通过践行社会责任,Blue Sky Research不仅赢得了社会的尊重和认可,也为企业的可持续发展注入了新的动力。

这些故事虽然基于假设和一般情况构建,但它们反映了Blue Sky Research在电子行业里可能的发展路径和战略选择。当然,实际的发展过程可能更加复杂和多元,需要更多的数据和细节来揭示。

HSMC公司的发展小趣事

HSMC深知技术创新是企业发展的核心驱动力。公司不仅拥有丰富的14纳米及7纳米以下节点FinFET先进逻辑工艺与晶圆级先进封装技术经验,还持续投入研发,瞄准世界先进的制程工艺。通过与全球各大科研院所的合作,HSMC不断储备行业专利,增强自身的技术壁垒。这种对技术创新的执着追求,为公司的长远发展奠定了坚实基础。

ACI [Applied Concepts, Inc.]公司的发展小趣事

随着全球电子市场的不断扩大,ACI公司开始将目光投向海外市场。公司积极实施国际化战略,通过设立海外分支机构、参加国际展会等方式拓展市场。同时,ACI还加强了与国际同行的交流与合作,共同推动电子行业的发展。通过国际化布局,ACI成功打开了海外市场的大门,为公司的发展注入了新的动力。

Equinox公司的发展小趣事

2020年,新冠疫情的爆发给全球健身行业带来了前所未有的挑战。许多健身房因为疫情而被迫关闭,Equinox也不例外。然而,Equinox并没有放弃,而是迅速调整策略,通过线上课程、虚拟健身等方式保持与客户的联系。同时,公司还加强了内部优化和成本控制,以应对疫情带来的经济压力。

Consolidated Wire公司的发展小趣事

在电子行业的早期,Consolidated Wire公司以其出色的技术研发能力崭露头角。公司投入大量资源研发新型导电材料,成功推出了一种具有更高导电性能和更低电阻的新型线材。这一技术突破不仅提升了电子设备的性能,还降低了能耗,赢得了市场的广泛认可。随着新型线材的普及,Consolidated Wire公司的业务规模迅速扩大,逐渐在电子线材市场占据了领先地位。

问答坊 | AI 解惑

传谷歌将推出浏览器Chrome 向微软IE发起挑战

北京时间9月2日,据国外媒体报道,《华尔街日报》周一援引消息人士的话称,Google计划发布一款名为Google Chrome的浏览器,向当前的浏览器龙头--微软的IE浏览器发起挑战。 报道称,Google将在近期推出[/url]改款浏览器。据悉,Google Chrome被设 ...…

查看全部问答>

基于全集成收发芯片CC1000的无线数据传输设计

【摘 要】 CC1000是CHIPCON公司生产的一种低功耗全集成收发芯片,工作于315/433/868/915 MHz工业、科学和医疗(ISM)短距离设备频段。文中介绍了芯片功能,给出了基于RS-232接口的PC机之间无线数据传输电路和PC机端接口程序、单片机控制端控制程序 ...…

查看全部问答>

三星2450sd卡驱动遇到的问题(休眠唤醒sd会发生拔出和插入的消息)

在休眠唤醒的时候,我不希望发生拔出和插入的消息。请问哪位老大解决了这个问题?请指点一下。…

查看全部问答>

求教HCF4051B电源怎么接啊

看了数据资料,也没有弄明白,VEE,vSS怎么接 电源供电有几种接法? 我刚开始接了vdd=+5v vss=vee=0 给控制信号开关不通 又把+5v改成12v还不行 一定要接负电源吗 我那没有负电源 谢谢了…

查看全部问答>

CE6.0 触屏校准程序怎么实现?

请问各位高手,有哪位弄过CE6.0下的触屏校准程序的,请指点小弟一下,谢谢。…

查看全部问答>

EVC 编写 dll

EVC下编写dll动态连接 error LNK2019: unresolved external symbol CoTaskMemAlloc referenced in function \"public: __cdecl 这个错误。 但是,CoTaskMemAlloc这个函数,你右键点击  查看函数的定义,EVC又能自动定位到   ...…

查看全部问答>

关于基于SJA1000的can节点通信

本人做了两个基于SJA1000的can节点,每个节点在PELI模式下都能实现自发自收,但连在总线上时不能通信。 当一个节点发送数据时,查了SR的状态标志位0x08,一直为1,说明上次的发送还未处理完,应该是没有收到另外一个节点的应答信号吧。我查了资料 ...…

查看全部问答>

EVC 中结构体的问题

  如果头文件中有个结构体: struct FvFixed {         CString m_str; public:         friend FvFixed const        operator+(const FvFixed x, const FvFixed y); ...…

查看全部问答>

请教关于EVC中树控件CTreeCtrl的问题

   我的程序中用到CTreeCtrl,调试单步运行到InsertItem()(即使程序是从EVC的帮助文件上COPY下来)语句时就出现0xC0000005的错误,直接运行的话到相应的地方模拟器就死掉了,但是下到板子上时可以运行的,焕一个其他的SDK也可以,实在 ...…

查看全部问答>

请问32位机器寻址空间4G,为何能够访问80G的硬盘

应该是某些概念没有弄清楚,请大虾提示。。…

查看全部问答>