历史上的今天
返回首页

历史上的今天

今天是:2025年08月08日(星期五)

正在发生

2019年08月08日 | STM32/STM8L/STM8S系列之一、流水灯

2019-08-08 来源:eefocus

一、STM32F103点亮LED

1、电路图:

这里写图片描述

2、代码:

//FUNCTION:LED初始化

//PARA    :无

//RETURN  :无

void LED_INIT(void) 

{

    GPIO_InitTypeDef GPIO_InitStructure;  


    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE); //使能AFIO和GPIOB端口

    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭PB3 PB4的复用功能,使能通用IO功能


    //GPIO Structure

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;  //Chose Pin3 and Pin4

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       //Set Frequency 50MHz   

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽输出

    GPIO_Init(GPIOB, &GPIO_InitStructure);                  //GPIOB

}


//main函数

int main(void)

{

    LED_INIT();


    while (1)

    {           

        GPIO_SetBits(GPIOB, GPIO_Pin_3);    //LED3 ON

        GPIO_ResetBits(GPIOB, GPIO_Pin_4);  //LED4 OFF

        mydelay_ms(500);                    //延时


        GPIO_ResetBits(GPIOB, GPIO_Pin_3);  //LED3 OFF

        GPIO_SetBits(GPIOB, GPIO_Pin_4);    //LED4 ON

        mydelay_ms(500);                    //延时

    }

}

3、LED点不亮原因:

一开始检查代码都正常,貌似没有错误,可是灯就是不亮,后来看手册发现原来PB3、PB4引脚都有个复用功能,系统默认使用了复用的功能,从而不再是通用IO输出功能,需要把复用功能关掉,才能正常输出IO信号。 

如下图:


图2 stm32f103c数据手册,PB口功能

可以看到,默认功能是JTDO和JNTRST,所以把这两个功能关闭即可。对应代码为LED初始化函数 LED_INIT() 中的以下两行:


    //关闭PB3 PB4的复用功能,使能PB2、PB3的通用IO功能

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE); 

    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);


二、STM8L151G6U6点亮LED

待补充


三、STM8S103点亮LED

1、流程

点亮LED,流程跟STM32基本一样:


(1)配置GPIO(STM8S不需要专门配置每个引脚的时钟,最开始的时候配置系统时钟即可)

(2)GPIO输出高低电平

废话不说,上代码:


2、上代码

//FUNCKTION: LED灯GPIO口初始化

//PARA     : 无

//RETURN   : 无

void LED_Config() 

{

    GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW);

    GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_SLOW);

}



//FUNCKTION: 打开LED灯

//PARA     : 无

//RETURN   : 无

void LED_ON()

{

    GPIO_WriteHigh(GPIOB, GPIO_PIN_4);

    GPIO_WriteHigh(GPIOB, GPIO_PIN_5);

}



//FUNCKTION: 关闭LED灯

//PARA     : 无

//RETURN   : 无

void LED_OFF()

{

    GPIO_WriteLow(GPIOB, GPIO_PIN_4);

    GPIO_WriteLow(GPIOB, GPIO_PIN_5);

}


3、死活点不亮LED的坑

因为使用的是*PB4和PB5这两个GPIO口,查看数据手册可以看到如下图: 

这里写图片描述

可以看到红圈内标记该GPIO口为T(3),继续下翻,到该表格的最下面,有关T(3)的描述: 

这里写图片描述

英语不好,就不献丑翻译了,反正意思是要自己在外部添加上拉电阻或下拉电阻,不然没用。

推荐阅读

史海拾趣

Edsun Laboratories Inc公司的发展小趣事

随着公司规模的扩大和产品线的丰富,ECM Electronics Limited.开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓国际市场,将产品出口到多个国家和地区。为了更好地服务全球客户,公司还设立了海外办事处和研发中心,加强与国际市场的联系和合作。通过国际化战略的实施,ECM进一步提升了品牌知名度和市场竞争力。

ADI Electronics Inc公司的发展小趣事

ADI在发展过程中始终坚持创新,不断推出新产品和新技术。例如,在数字化转型的浪潮中,ADI积极拥抱变革,推出了一系列针对物联网、人工智能等新兴领域的解决方案。这些创新举措不仅满足了客户的需求,也进一步巩固了ADI在电子行业的领先地位。

Andersen Laboratories Inc公司的发展小趣事

为了更好地服务全球客户,AnalogicTech积极实施全球化运营策略。公司在亚洲和大中华地区建立了广泛的晶圆制造和后端合作伙伴网络,包括香港地区、上海和台湾地区的台北。此外,AnalogicTech还迁入香港科技园,将深圳地区纳入业务版图,提高在中国大陆的销售情况,特别是珠江三角洲地区。

Force Technologies Ltd公司的发展小趣事

背景:随着业务的不断增长,Force Technologies Ltd意识到单一市场已无法满足其发展需求。于是,公司制定了明确的国际化战略,旨在将产品和技术推向全球。

发展:通过在欧洲、北美和亚洲等地设立研发中心和生产基地,Force Technologies Ltd成功构建起全球化的运营网络。同时,公司还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。在国际市场的推动下,公司的销售额和市场份额均实现了快速增长。

FEIG ELECTRONIC公司的发展小趣事

FEIG ELECTRONIC始终将技术创新作为企业发展的核心动力。公司不断投入大量资源进行技术研发和产品升级,以保持其在RFID领域的领先地位。近年来,FEIG推出了多款具有高性能、高可靠性、高安全性的RFID产品,如长距离读写器、智能门禁系统等。这些产品的推出不仅满足了客户的多样化需求,还进一步巩固了FEIG在RFID领域的市场地位。

以上五个故事大纲简要概述了FEIG ELECTRONIC在电子行业中的发展历程和关键事件。虽然每个故事的具体细节可能有所不同,但它们共同展示了FEIG在技术创新、市场拓展、合作创新、战略合作和持续创新方面的努力和成就。

Fagor Electrónica公司的发展小趣事

1959年,Fagor Electrónica在电子领域崭露头角,当时它还只是Ulgor, S. Coop.公司旗下的一个电子部门。这一年,公司开始制造硒板和整流器,这标志着其电子制造业务的开始。尽管初始规模不大,但Fagor Electrónica凭借其高质量的产品和卓越的客户服务,迅速在市场上赢得了声誉。

问答坊 | AI 解惑

[原创]EDA 资料分享

defun( gfe_HelloWorld ()prog( ()    mark = axlDBTransactionStart()    axlControlRaise(\'options)    HelloWorld_form_file = \"./HelloWorld.form\"    _c ...…

查看全部问答>

不间断电源常见名词解释

不间断电源常见名词解释注:如使用的不是原厂所规定的同规格保险丝有可能造成机器故障,或是引起线路起火,危害自身的安全。最好是使用原厂所规定的同规格保险丝,既可保护设备也可保护确保人身安全。    空气开关:一种电流保护装置,即当电流超过 ...…

查看全部问答>

求助 12864的菜单设计

大侠们  我在写12864液晶的菜单 。请问能否给予帮忙  ?我自己写的总有点问题。希望大虾们能传授一二 谢谢!…

查看全部问答>

有关无线技术的一些标准(二)

新兴的无线技术标准 随着人们对无线技术在过程工业中的应用兴趣持续增长,各种可用技术的数量也随之增加――要求为这些应用中的现场网络提供特定标准的愿望也增加了。 为过程工业而开发的无线标准目前有三个,分别是:WirelessHART(无线HART)、 ...…

查看全部问答>

自主式寻迹机器人小车的设计

自主式寻迹机器人小车的设计…

查看全部问答>

“敖飞电子”AVR16开发板芯片手册合集

在论坛芯币兑换的敖飞电子的朋友们不用到处找芯片手册了,我已经为大家准备好了。 …

查看全部问答>

请问DC综合的乘法器是什么类型的?有必要再用verilog专门写一个乘法器吗?

大家好:                 请问DC对于“*”综合出来的乘法器是什么类型的?有必要再用verilog专门写一个乘法器吗?现在我的工作时钟为20m左右,数据位数为32位的,需要乘法器在一个时 ...…

查看全部问答>

基于 LM3S的图形驱动库开发之底层驱动函数的编写

在上一个文档中我给大家介绍了TI图形驱动库的结构,分为三层:显示驱动层,图形基元层,小工具层。其中显示驱动层是需要我们程序员自己补充的。现在我们来具体谈谈如果来补充和书写底层驱动函数。从ti的文档中我们可以看出,我们需要补充的就是tDis ...…

查看全部问答>

【新人求助】关于PIC编程语言的问题

各位兄弟大家好!   本人是学习单片机的新人,不仅是PIC,51单片机以前也没有接触过。   由于工作需要,从现在起需要学习PIC单片机,想听取各位兄弟的意见。   我的问题是汇编语言和C语言各自有什么特点,对于我这样的新手来 ...…

查看全部问答>