历史上的今天
返回首页

历史上的今天

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

正在发生

2020年02月06日 | 关于Stm8库函数使用需要格外注意的地方

2020-02-06 来源:eefocus

最近在调一个无线项目,用的是STM8003系列的单片机。调用读IO口的库函数

if(SET == GPIO_ReadInputPin(RF_DAT_GPIO_PORT ,RF_DAT_GPIO_PIN))

{

//高电平操作

}

else

{

//低电平操作

}


结果死活读不了高电平,但是使用

if(GPIO_ReadInputPin(RF_DAT_GPIO_PORT ,RF_DAT_GPIO_PIN))

{

//高电平操作

}

else

{

//低电平操作

}

却可以正确读入引脚电平


如是对这个库函数进行了跟踪发现IO口为高电平时,其返回的值不是SET而是0x64。再看SET定义为enum类型。


typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus, BitAction;

所以这就是一个坑,像GPIO_ReadInputPin这类函数都不能if(SET == GPIO_ReadInputPin(RF_DAT_GPIO_PORT ,RF_DAT_GPIO_PIN))否则都不能正确读到数据。而要使用if(GPIO_ReadInputPin(RF_DAT_GPIO_PORT ,RF_DAT_GPIO_PIN))才能正确读入数据。

推荐阅读

史海拾趣

Defender Security公司的发展小趣事

随着勒索软件的日益猖獗,Defender Security公司迅速调整战略,成立了专门的研究小组来对抗这种威胁。他们深入分析了勒索软件的传播方式和攻击手段,开发出了高效的检测和防御系统。通过不断的技术创新和优化,Defender Security成功帮助多家企业抵御了勒索软件的攻击,赢得了市场的广泛认可。

AVAGO公司的发展小趣事

随着技术的不断进步,AVAGO公司开始致力于研发更先进的半导体技术。其中,一次重大的技术突破发生在光纤通信领域。公司成功研发出了一种高性能的光纤收发器,这一创新不仅提高了数据传输的速度和稳定性,还极大地推动了光纤通信技术的发展。这一产品迅速在市场上获得了广泛应用,为AVAGO公司带来了可观的收益。

Heatron LED Integration公司的发展小趣事

Heatron LED Integration始终将客户需求放在首位,提供全方位的服务支持。公司建立了完善的售前咨询、售中指导和售后服务体系,确保客户在使用过程中能够得到及时、专业的帮助。此外,公司还根据客户需求提供定制化解决方案,满足不同场景下的照明需求。这种客户至上的服务理念,赢得了广大客户的信赖和好评。

Densei-Lambda (TDK)公司的发展小趣事

Heatron LED Integration始终将客户需求放在首位,提供全方位的服务支持。公司建立了完善的售前咨询、售中指导和售后服务体系,确保客户在使用过程中能够得到及时、专业的帮助。此外,公司还根据客户需求提供定制化解决方案,满足不同场景下的照明需求。这种客户至上的服务理念,赢得了广大客户的信赖和好评。

Desco Tools公司的发展小趣事

Desco Tools公司一直注重客户服务和品质保障。公司建立了完善的客户服务体系,为客户提供全方位的技术支持和解决方案。同时,公司还建立了严格的质量管理体系,确保每一件产品都符合高标准的质量要求。这些举措赢得了客户的信任和好评,也为公司的长期发展提供了有力保障。

DOMINANT公司的发展小趣事

随着公司业务的不断发展,统明亮开始积极拓展全球市场。它通过与国内外知名企业的合作,不断提升自身的品牌影响力和市场竞争力。同时,统明亮还积极参加各类国际展会和交流活动,与全球各地的客户建立了紧密的合作关系。这些努力使得统明亮在全球LED市场中的份额不断扩大,其品牌影响力也得到了进一步提升。

请注意,由于篇幅限制,以上仅为三个简要故事。如果需要更多关于DOMINANT公司的发展故事,建议查阅相关报道和资料。

问答坊 | AI 解惑

全国大学生电子设计竞赛获奖作品精选1990~1994

本帖最后由 paulhyde 于 2014-9-15 03:18 编辑 超星图书下载    …

查看全部问答>

kline与TX RX的关系问题

我看到一个电路,发现当RX有信号时且不是也干扰到了TX了吗,怎么也不明白。往各位朋友能帮我解这个惑。…

查看全部问答>

ARM启动代码的比较与实现。

ARM启动代码的比较与实现。…

查看全部问答>

LabVIEW测量信号时间间隔的实现

LabVIEW测量信号时间间隔的实现 摘要 以两路信号为例, 详细阐述了以虚拟仪器方式, 针对不同种类的信号输入硬件板卡, 使用L abV IEW 软件平台实现信 号时间间隔测量的方法。详细解释了各种方法的特点、适用范围及具体实现。另外, 也根据具体的测 ...…

查看全部问答>

SD卡数据的读取

我想用FPGA来读取SD卡内的数据,那位大虾有现成的FPGA程序,共享一下!…

查看全部问答>

由于快递没到所以团购活动的maple开发板延误了

由于快递没到所以团购的maple开发板延误了预计明天会到…

查看全部问答>

请教一个BootLoader的问题

购买的EEWORLDC32SS开发板,CPU地址总线为32位,板载FLASH地址为0x0H-0x3ffffH,而BootLoader的地址为0h-0x0fffH,也就是说上电复位后,系统会从FLASH中读取程序,但现在FLASH的位数为16位,而DSP数据总线是32位,是不是这样就不可能上电自启动了呢 ...…

查看全部问答>

如何让51 记录下很多数据??

具体点是  现在有多个数据过来 比如说 一号灯亮 二号等亮 三号灭 四号灭 这些是不同个信号源发送过来的 这些都是同时发送给51  能不能让51  同时记录下来  记录后打包做好标记 然后不同时刻发送出去 !! ...…

查看全部问答>

DSP-Sitara课程进度一直是50%的请进!!!

进度一直是50%的同学,是不是每次点击的是上图中的片头,看完整个视频进度只有50%呢? 技术告诉我们,虽然说从片头可以直接学习课件。但是对系统来讲片头与课程是整个视频的两部分。所以,需要点一下“课程”。否则,系统会认为 “课程”这个部 ...…

查看全部问答>

Android的原理-不需要太多的剩余内存

最近打算学习下android,看到一篇文件,转过来给大家看看~~还不错Android的原理-不需要太多的剩余内存 Android用RAM的方式,跟windows、WM、Sybiam是两回事。在Android里,RAM被用满了是件好事。它意味着你可以快速打开之前打开的软件,回到之 ...…

查看全部问答>