历史上的今天

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

正在发生

2020年02月08日 | stm8——LED流水灯实现

发布者:collectors 来源: eefocus关键字:stm8  LED  流水灯 手机看文章 扫描二维码
随时随地手机看文章

最近接触并学习了一款STM8系列的芯片。以前学习了的ARM9+Linux后,再来学习单片机就感到上手很快了。 

芯片基本信息:


Type:STM8L151G6

8-bit ultralow power MCU, 

up to 32 KB Flash, 

1 KB Data EEPROM 

RTC, 

LCD, 

timers, 

USART, 

I2C, 

SPI, 

ADC, 

DAC, 

comparators


具体可以查看datasheet:http://pdf-file.ic37.com/pdf4/STMICROELECTRONICS/STM8L_datasheet_892862/145357/STM8L_datasheet.pdf


现在来实现最简单的LED流水灯功能,在接触一块新的板子的时候,以LED入手,并快速熟悉整个的开发环境是比较合理的选择。


开发环境:IAR Embedded Workbench 

调试工具:ST Link


关于IAR的安装、ST Link驱动的安装以及环境参数的设置不再赘述,可自行参考网上资料。


=========================================== 

对于LED来说,它是输出设备,是由CPU的某个引脚来控制给高/低电平,从而使灯亮/灭的。具体的就要查看原理图,注意LED是给的上拉还是下拉即可。


对于这个项目来说,我们只需要到以下这些库: 

 

时钟、配置、GPIO。


接下来我们user只需要实现led.c和led.h两个文件即可: 

led.c:


#include "stm8l15x.h"

#include "led.h"


void LED_Init(void)

{

  GPIO_Init(GPIOB, (GPIO_Pin_1 | GPIO_Pin_2), GPIO_Mode_Out_PP_High_Fast);  //初始化引脚:1, 2 ; 输出模式:高速推挽高电平输出

}


void delay(unsigned int s)  //简单的延时,并不是很准确

{

  unsigned int i,j;

  for(i=s; i>0; i--)

    for(j=150; j>0; j--);

}


led.h:


#ifndef __LED_H

#define __LED_H


#include "stm8l15x_gpio.h"


void LED_Init(void);

void delay(unsigned int s);


#define ON  0

#define OFF 1


/*使用宏定义,使在主函数中更简洁.都是GPIO的使用*/

#define LED1(status) if(ON == status) GPIO_ResetBits(GPIOB, GPIO_Pin_1);

                     else GPIO_SetBits(GPIOB, GPIO_Pin_1);

#define LED2(status) if(ON == status) GPIO_ResetBits(GPIOB, GPIO_Pin_2);

                     else GPIO_SetBits(GPIOB, GPIO_Pin_2);


#endif


主函数main.c:


#include "stm8l15x.h"

#include "led.h"

int main( void )

{

  CLK_CCOConfig(CLK_CCOSource_HSI,CLK_CCODiv_1);  //配置时钟,HSI内部高速时钟 16M


  LED_Init();


  while(1)

  {

    LED1(ON);

    delay(500);

    LED1(OFF);


    LED2(ON);

    delay(500);

    LED2(OFF);

  }


}


compile后,make,再下载到板子上就行了.可以看到两个LED灯循环亮灭。 

这里不好的一点就是延时函数不能准确延时,只是用了简单的for循环。加以学习后使用精确延时再试试。

关键字:stm8  LED  流水灯 引用地址:stm8——LED流水灯实现

上一篇:MCU程序设计之STM8S的optionbytes
下一篇:使用STM8S105K4T6C 模数转换器的12通道

推荐阅读

  紫光展锐日前已正式完成展讯与RDA合并,及组织架构调整,今年将在手机芯片市场展现锐气,自主研发CPU推出产品;同时同步推进4G芯片与大陆、国际一线电信营运商合作,预计5G手机2020年下半上市,2021年能实现亿台级别的出货量。下面就随嵌入式小编一起来了解一下相关内容吧。  紫光展锐市场部资深副总裁吴慧雄表示,紫光展锐过去累积的技术实力终获突...
ABI Research最近发布的数字工厂市场数据报告显示,数字工厂市场将以33%的年复合增长率增长,到2026年将达到6730亿美元。 “目前,大多数制造设备仍然使用专有协议进行通信,并且以成本效益高的方式连接,而不需要太多的定制代码,这往往需要lit或 Kepware等I集成专家的专业知识。”ABI Research首席分析师皮尔斯·欧文说:“对于新工厂,我们已经...
什么是中断程序呢?形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行中断程序了,当执行完成后CPU又回来执行原先的程序。...
12月1日,智东西GTIC 2020 AI芯片创新峰会在北京国家会议中心开幕。本次AI芯片创新峰会以“拥抱芯世界 开创新未来”为主题,围绕AI芯片自主创新和产业落地两个核心方向,探讨AI芯片的创新与自主可控、AI芯片在新基建风口下的落地,以及AI芯片新机遇与未来趋势。当天,黑芝麻智能科技CMO杨宇欣就自动驾驶计算芯片的突围之径这一主题,与到场的业内人士分...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved