历史上的今天
返回首页

历史上的今天

今天是:2024年12月17日(星期二)

正在发生

2019年12月17日 | STM8L之修正库函数GPIO_WriteBit的Bug

2019-12-17 来源:eefocus

简介


本文修正STM8L的库函数GPIO_WriteBit的Bug。


实验平台


编译软件:IAR for STM8 1.42.2


硬件平台:stm8l101f3p6开发板


仿真器:ST-LINK


库函数版本:STM8L_STMTouch_Lib_V1.1.0


BUG现象

通过GPIO_WriteBit函数无法控制IO的电平。


实验步骤

1、替换GPIO_WriteBit函数(在stm8l10x_gpio.c中)

//******************************************************************************        

//name:             GPIO_WriteBit        

//introduce:        GPIO控制位的函数     

//parameter:        GPIOx: 端口(x = A to D)  

//                  GPIO_Pin: GPIO_Pin_0~GPIO_Pin_7 

//                  GPIO_BitVal: SET or RESET                      

//return:           none      

//author:           甜甜的大香瓜             

//email:            897503845@qq.com         

//QQ group          香瓜单片机之STM8/STM32(164311667)                      

//changetime:       2016.11.18       

//******************************************************************************  

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal)

{

  /* Check the parameters */

  assert_param(IS_GPIO_PIN(GPIO_Pin));

  assert_param(IS_STATE_VALUE(GPIO_BitVal));

 

  if (GPIO_BitVal != RESET)

  {

    //SetBit(GPIOx->ODR, GPIO_Pin);//BUG语句,GPIO_Pin是按位来定义的,却被SetBit以字节来操作。

    GPIOx->ODR |= GPIO_Pin;    

  }

  else

  {

    //ClrBit(GPIOx->ODR, GPIO_Pin);//BUG语句,GPIO_Pin是按位来定义的,却被SetBit以字节来操作。

    GPIOx->ODR &= (uint8_t)(~GPIO_Pin);    

  }

}

实验结果

将函数修正后,IO口能被正常拉高拉低了。

因此,实验成功。

推荐阅读

史海拾趣

FUJI公司的发展小趣事

在电子行业中,虽然直接名为“FUJI”的公司可能不是最为人所熟知的(注意:富士通实际上使用的是“Fujitsu”而非“FUJI”,但考虑到FUJI可能与富士电机等相关联,以下将基于这些相关公司进行阐述),但富士电机及其关联企业,如富士通和富士施乐,在电子行业的发展历程中都有着举足轻重的地位。以下是五个与这些公司相关的故事:

1. 富士电机的诞生与多元化发展

故事概述:富士电机控股公司(FUJI ELECTRIC HOLDINGS CO., LTD.)成立于1923年,是古河电器工业与德国西门子资本技术合作的产物。起初,公司以电气机器制造为主,后逐渐扩展到电机系统、电子设备和零售终端设备等多个领域。富士电机不仅在电机领域保持领先地位,还积极拓展至自动贩卖机等领域,并在该领域占据日本国内第一的市场份额。其发展历程展现了日本重电机制造商的多元化战略和全球视野。

2. 富士通的通讯与计算机技术崛起

故事概述:富士通(Fujitsu)的前身可以追溯到1875年成立的Furukawa Denko公司,后与西门子合作成立富士电机制造株式会社。富士通在通讯和计算机技术方面的崛起尤为显著。1935年,富士通信机制造公司成立,标志着富士通在通讯领域的正式起步。随后,公司不断推出创新产品,如FACOM系列计算机、第一台出口海外的计算机等,奠定了其在全球计算机市场的地位。富士通对通讯和计算机技术的持续投入和创新,使其成为电子行业的重要力量。

3. 富士施乐的打印机与复印技术革新

故事概述:富士施乐(Fuji Xerox)成立于1962年,是富士胶片和美国施乐合资成立的企业。自成立以来,富士施乐在打印机和复印技术方面取得了显著成就。公司不仅推出了多款具有创新性的打印和复印产品,还积极应对市场变化,不断调整业务结构。例如,在数字化浪潮中,富士施乐推出了多款支持网络打印和多功能一体的产品,满足了市场的新需求。其技术革新和市场策略调整,使富士施乐在打印和复印技术领域保持领先地位。

4. 富士通与FANUC的工业机器人合作

故事概述:富士通与FANUC的合作是电子行业与工业机器人技术结合的一个典型案例。FANUC作为富士通的子公司之一,自上世纪70年代成立以来,便致力于工业机器人的研发和生产。富士通与FANUC的紧密合作,不仅推动了工业机器人技术的快速发展,还促进了电子行业生产线的自动化和智能化升级。两家公司的合作成果广泛应用于汽车制造、电子组装等多个领域,为工业生产带来了革命性的变化。

5. 富士电机在绿色能源领域的探索

故事概述:随着全球对绿色能源和可持续发展的重视,富士电机也开始在绿色能源领域进行积极探索。公司不仅致力于高效能电机的研发和生产,还积极推动可再生能源技术的应用。例如,富士电机在太阳能和风能领域推出了多款创新产品和技术解决方案,为可再生能源的普及和应用做出了积极贡献。其绿色能源战略不仅符合全球发展趋势,也为公司未来的可持续发展奠定了坚实基础。

以上五个故事分别展现了富士电机及其关联企业在电子行业不同领域的发展历程和成就。这些公司凭借持续的技术创新和市场拓展,成为了电子行业的重要参与者和推动者。

Don Connex Electronics Co Ltd公司的发展小趣事

近年来,随着环保意识的提高,Don Connex Electronics积极响应绿色发展的号召,将环保理念融入产品设计和生产过程中。公司采用环保材料、节能减排的生产工艺,确保产品在使用过程中对环境的影响降到最低。同时,公司还积极参与环保公益活动,推动电子行业的绿色发展。

Displaytech公司的发展小趣事

2008年,Displaytech推出了HDP Power,这是一项创新的电力解决方案,旨在支持公司客户的电力需求。这一举措不仅体现了Displaytech对客户需求的深刻洞察,也展示了公司在电源领域的技术实力。

福斯特(FIRST)公司的发展小趣事
测量方向盘的转动角度和速度,通过电位计的变化或光学传感器的光信号变化来反映方向盘的旋转情况。这些数据对于ESP系统判断车辆的转向意图至关重要。
Electro-Optical Systems Inc公司的发展小趣事

进入21世纪,EOS在红外探测器领域取得了重大技术突破。他们成功将探测器的波长范围扩展到远红外(40微米)领域,这一成果在行业内引起了广泛关注。同时,EOS的产品也凭借其高性能、高可靠性和高稳定性,赢得了广大用户的认可和信赖。他们开始与国内外多家知名企业建立合作关系,产品广泛应用于军事、科研、安防等领域。

Caddock公司的发展小趣事

为了进一步提升市场竞争力,Caddock公司积极寻求国际合作。通过与全球知名电子企业的合作,公司成功将产品打入国际市场,实现了品牌影响力的扩大和市场份额的提升。同时,公司还积极参加国际电子展会和技术交流活动,不断吸收行业前沿技术,推动自身技术创新和产业升级。

问答坊 | AI 解惑

增强型80C51单片机速成与实战

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 不错的书0哦  …

查看全部问答>

GPS方案以及嵌入式开发板介绍(转)

市场上有S3C,TI,Freescale等不同品牌的产品,但是那一款比较适合做消费电子产品,下面我给大家做个分析。S3C的开发板产品价格相对较低,受到很多高校的钟爱,但是,要知道作为工程师必须使用和了解高端的产品,像这种给高校用来做基础教育的产品 ...…

查看全部问答>

学了DSP一段时间,感觉嵌入式软件开发好像全是软件的问题呢。

      可能是因为我用的学校提供的现成的试验箱吧,功能比较齐全,北京合众达的DM643的箱子。        从学习DSP开始,都觉得在跑例程、改写、编写程序中,困难最多的都是软件方面的问题,像是基本语法、 ...…

查看全部问答>

[UC/OS II 中怎样增加添加路由功能]

各位大大,知道怎样在UC/OS II 中实现route add , rout delete之类的路由函数功能? 或者这些函数的原型是怎么样的? 谢谢!…

查看全部问答>

linux关于dentry,inode的问题

linux中一个文件都有一个dentry和一个inode,这两个结构是VFS根据具体文件系统磁盘上的信息在内存中建立的数据结构,我这么理解对吧?我们在mount一个文件系统的时候,系统应该负责建立这些dentry和inode吧?那如果一个磁盘包括的文件数很多,那么内 ...…

查看全部问答>

为什么bb5系列无法解网络

为什么NokiaBB5系列无法解网络? 比如说绑定美国cingular的Nokia E62 我做了很多搜索,没找到可以解锁的办法。(除了向cingular索取解锁密码) 在下学浅,觉得电话跟电脑差不多,如果靠密码能解锁的话,一定是软件上的限制,重写成出厂设置应该 ...…

查看全部问答>

STM32F105系列I2SSLAVERX收数错位问题

MCU输出主时钟给音频ADC芯片,让ADC芯片工作在master 模式,产生standerd philips I2S格式(64FS,FS=48K),但从MCU端看,接收到的数据有错位情况。 举例:MCU I2S配置如下,I2S时钟误差为0, I2S_InitStructure.I2S_Standard = I2S_Standa ...…

查看全部问答>

IIC学习经历以及CAT1024/25

  对于IIC来说只有两条线来控制数据的传输,SDA和SCL。对于IIC协议的学习,要掌握四种模式,主发送,主接收,从发送和从接收。在对设备的读写操作信号是在发送从地址时将其一起发送出去,比如主发送模式,它要从从设备中读取数据,那么在主设 ...…

查看全部问答>

接插件选型?

        1、每一块电路板上,都会用到接插件,请教下接插件都是怎么选型?谁能上传点接插件的资料。         2、满足以下要求的接插件,有用过得给推荐下:    ...…

查看全部问答>