STM8S003F3控制LED

来源:互联网 发布:单片机浇花 编辑:程序博客网 时间:2024/06/05 00:54

一、概述

不管什么单片机,想要控制LED灯,只能是通过控制单片机芯片的I/O引脚电平的高低来实现。

同样在ST单片机上,I/O引脚可以被软件设置成各种不同的功能,如输入或输出,所以被称为 GPIO (General-purpose I/O)。
而GPIO引脚又被分为GPIOA、GPIOB„„GPIOG不同的组,每组端口分为 0~15,共16个不同的引脚不等,
对于不同型号的芯片,端口的组和引脚的数量不尽相同,具体请参考相应ST单片机芯片型号的datasheet。 


根据ST单片机的GPIO特点,控制LED灯的步骤如下: 
1.在众多 GPIO端口引脚中选定需要控制的特定引脚[与LED相连的控制引脚] 
2.根据外设配置GPIO需要的特定功能 
3.通过设置 GPIO输出电压的高低控制LED的亮和灭


STM8S003F3是一款比较小巧的单片机,在IO资源需求够小的时候可以选择,同时它的控制也相对的简单些,
STM8系列的单片机一般都是使用IAR for STM8的开发环境,同时注意,在安装时最好把STLink下载器直接插在电脑上安装,
因为在安装IAR for STM8开发环境时会自动安装STLink的驱动。[根据本人经验,插上下载器安装最容易安装成功]
二、硬件电路图


三、需要用到的函数库

stm8s_gpio.c

程序

main.c

/**********************************************************平台:IAR for STM8 V2.10.4*主控:STM8S003F3**********************************************************/#include "stm8s.h"#include "led.h"#include "delay.h"int main(void){   LED_Init();      //LED初始化   Delay();                  //延时初始化   while(1)   { LED_Not(0);     Delay_ms(500);    } }


led.c


#include "led.h"void LED_Init(void){   //定义LED的管脚的模式 推挽-输出高电平-低速   //GPIO_MODE_OUT_PP_LOW_SLOW   //本来可以写成一句   GPIO_Init(GPIOC,GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_SLOW);   //但是IAR的软件这样写会出警告,所以只能分开写   GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_SLOW);   GPIO_Init(GPIOC,GPIO_PIN_HNIB,GPIO_MODE_OUT_PP_HIGH_SLOW);}//LED控制引脚取反void LED_Not(int n){    switch(n)    {        case 0: GPIO_WriteReverse(GPIOC, GPIO_PIN_3);                break;        case 1: GPIO_WriteReverse(GPIOC, GPIO_PIN_4);                break;        case 2: GPIO_WriteReverse(GPIOC, GPIO_PIN_5);                break;        case 3: GPIO_WriteReverse(GPIOC, GPIO_PIN_6);                break;    }}

编译下载后就能看到LED一闪一闪的

0 0
原创粉丝点击