新疆喜乐彩玩法

STM8S自学笔记之利用库函数点亮一个LED

2019-12-12来源: eefocus关键字:STM8S  库函数  LED

准备工作及前提 

新疆喜乐彩玩法a、已安装IAR或者STVD 

b、下载标准固件库(StdPeriph_Lib_V2.1.0)备用; 

c、已建立好一个程序模板,如未建立请参考我的博客中的帖子STVD+STM8官方固件库创建工程模板; 

d、(非必要)已下载STM8s库函数所在的程序版手册; 

e、(非必要)Flash Loader Demonstrator,这是ST的ISP烧写,对于STM8只有支持BootLoader的才行,STM8SF103本身木有BootLoader,需要自己写故而此处只是提及,但不要求,后期学习时再更新,但还是装上较好,因为要是后期我更新了呢。


使用软件 

STVD(全称ST Visual Develop)——编程使用; 

stm8slib(使用手册程序版) ——查找库函数及库函数的调用方法; 

STVP(全称ST Visual Programmer)——烧录程序;


开始 

1)模板准备工作 

新疆喜乐彩玩法a、复制程序模板,并重命名文件夹为LED,这样既保留了程序模板,又便于后期开发其他项目时不用再重新一步一步执行创建模板时的必要过程,节省时间; 

b、打开STVD后,选择File->Open Wodkspace,选中LED模板Cosmic下的Demo.stw打开即可,但还不忙写自己所要实现的任何功能的函数; 

c、为自己的主函数文件开始处添加块注释信息如下,完成后点击左侧方块收起块(如图)注释,方便管理和修改: 

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

** 文件名    :  main.c 

新疆喜乐彩玩法** 作       者 :  Killer 

** 创建日期 :  2017。12。16 

** 版       本 :  V0。1 

** 功能描述 :  ANSI C。主函数调用其他函数实验点 

**                    亮LED或者熄灭LED. 

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

这里写图片描述

d、编译模板,没有错误时,开始添加自己要实现的功能代码。 


2)功能实现 

3.2.1、理清点亮LED逻辑思路 

a、LED的亮灭是由LED所在GPIO端口引脚输出高低电平来实现; 

b、根据电路接法选择GPIO端口、或者引脚工作模式、电平翻转速率; 

c、(非必要)可以在初始化端口前将对应GPIO端口寄存器恢复到默认值。 

注意:此处端口是指如GPIOA、GPIOB等,由8位(或者说8个引脚)组成,如51单片机的P0、P1等;而GPIO端口引脚、GPIO引脚、引脚则是这些端口的某一个引脚,如51单片机的P0.0,P1.1等,此处可以理解为GPIOA.0 GPIOB.2等;


3.2.2、根据思路在stm8s_gpio.c文件中查找响应函数 

a、经查看文件可将对应高低电平输出到引脚的函数原型如下: 

void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t PortVal); 

void GPIO_WriteHigh(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); 

void GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); 

void GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins); 

参数解释如下: 

GPIO_TypeDef* GPIOx:端口类型参数为GPIOA、GPIOB等具体端口; 

uint8_t PortVal:8位二进制组成的一个端口值,每一位操作一个引脚; 

GPIO_Pin_TypeDef PortPins:引脚类型数据,具体为GPIO_Pin_0~GPIO_Pin_7,神奇的是库函数还让你一次性操作高四位或者第四位参数为GPIO_PIN_LNIB(低四位),GPIO_PIN_HNIB(高四位),全部8位就是GPIO_PIN_ALL。 



3。2。3、初始化LED所在引脚 

新疆喜乐彩玩法继续查找stm8s_gpio。c,并找到类似Init字样即可,其中Init是Initialize的缩写。 

void GPIO_DeInit(GPIO_TypeDef* GPIOx); 

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode); 

其中第一个为恢复到默认值(De【fault】)的初始化;第二个则是对应引脚的初始化; 



3。2。4、使用程序办库函数使用手册配置GPIO引脚 

a、运行 

这里写图片描述 

b、选择库函数功能及配置 

这里写图片描述 

图中手绘步骤数字描述: 

1步:选择对应功能的库函数; 

2~4步:选择该库函数的对应参数,例如本函数GPIO_Init: 

第一个参数为步骤2的LED所在端口; 

第二个参数为步骤3的对应LED在端口中所在引脚; 

第三个参数为该引脚工作模式选择; 

5步,将所选参数生成代码; 

6步:将生成的代码剪切至系统剪贴板,在STVD或其他IDE中粘贴即可。 



总体代码实现 

这里写图片描述

总结 

对于GPIO操作时须有如下步骤,即使是STM32、STC15等单片机,不论是库函数还是寄存器亦是如此: 

新疆喜乐彩玩法1、初始化端口 

新疆喜乐彩玩法2、初始化所在引脚并设置翻转速度、工作模式,如:开漏/推挽、输入/输出; 

3、对端口或者指定引脚写入数据;


关键字:STM8S  库函数  LED 编辑:什么鱼 引用地址:http://news.zjgsmm.com/mcu/ic482725.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8L051x SPI Master
下一篇:STM8L051 调试体会

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S003单片机串口通信通信协议分析
最近在用STM8S003这个片子做项目,在做串口通信的时候,发现以前写的协议太简单了,项目中用不适合。//协议 : 0XDD xx xx  xx xx xx xx  0XAA  @far @interrupt void UART1_Receive(void) {unsigned char res;res=UART1_DR;if(res==0xDD)       //头{Rec_statu=1;     //标志开始接收Rec_Cnt=0;Rec_End=0;return;}if(res==0xAA) 
发表于 2019-12-27
STM8S105S4_PKT学习笔记(2) 外部中断
button-->PD7Led -->PD0main.c:/* MAIN.C file *  * Copyright (c) 2002-2005 STMicroelectronics */#include "stm8s207s6.h" void Clock_Init(void){ CLK_SWCR |= 0x02;//使能切换机制 CLK_ECKR |= 0x01;//外部晶振使能 while(!(CLK_ECKR & 0x02));//等待HSE准备就绪 CLK_SWR  = 0xB4;//选择HSE为主时钟 CLK_CSSR
发表于 2019-12-27
STM8S105S4_PKT学习笔记(2) 外部中断
STM8S003/103K使用uart1注意事项
我们知道STM8S003/103K只有uart1,  如果按中文手册设置,会出现uart1无法使用的情况:一、中文手册描述有一个错误或者说误导吧,如图:如果按上面的信息配置uart1的时钟: CLK->PCKENR1 |= CLK_PCKENR1_UART1;  //UART1 Clock Enable.     CLK_PCKENR1_UART1=0x04将会出现UART1无法正常使用。二、查看英文手册和对应的数据手册,如图:修改配置uart1的时钟: CLK->PCKENR1 |= CLK_PCKENR1_UART2;  //UART1 Clock
发表于 2019-12-27
STM8S003/103K使用uart1注意事项
STM8S——8位基本定时器(TIM4)
简介:该定时器由一个带可编程预分频器的8位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能。主要功能:(1)8位向上计数的自动重载计数器;(2)3位可编程的预分配器(可在运行中修改),提供1、2、4、8、16、32、64、128这8种分频比例;(3)中断产生:更新中断(溢出,计数器初始化)。代码实现: 1 /* Includes ------------------------------------------------------------------*/ 2 #include "stm8s.h" 3  4 /* Private
发表于 2019-12-27
stm8s开发(四) CLOCK的使用:时钟控制
STM8S具有一个强大的时钟系统,内部提供一个高速16M的RC振荡器,和一个低速128K的RC振荡器。时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消耗的功率最低。用户可独立地管理各个时钟源,并将它们分配到CPU或各个外设。主时钟和CPU时钟均带有预分频器。具有安全可靠的无故障时钟切换机制,可在程序运行中将主时钟从一个时钟源切换到另一个时钟源。一般来说,时钟树是配置时钟、控制时钟的依据,所以需要掌握,以下是STM8S时钟树图:从图中看出,一共有3个时钟源,分别是HSE(高速外部时钟)、HSI(高速内部时钟)、LSI(低速内部时钟)。HSE(高速外部时钟)可通过外部晶振提供,HSI(高速内部时钟
发表于 2019-12-26
stm8s开发(四) CLOCK的使用:时钟控制
STM8S时钟配置CLK_HSIPrescalerConfig与CLK_SYSCLKConfig区别
//CLK_SYSCLKConfig通过CLK_Prescaler值的最高位来区分是配置HSI分频,还是CPU分频的。这个函数有两个功能。//而CLK_HSIPrescalerConfig是直接配置HSI分频的,CPU分频配置成1//配置内部时钟,直接调用 CLK_HSIPrescalerConfig(CLK_Prescaler_TypeDef HSIPrescaler); 一个函数即可/* Clock divider to HSI/1 */CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  // 只配置HSI分频率,CPU分频率1  /* Configure the
发表于 2019-12-26
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD。com。cn, Inc。 All rights reserved
北京赛车pk10玩法 安徽11选5 新疆喜乐彩 新疆喜乐彩走势图 彩宝彩票平台 北京赛车pk10玩法 天津福利彩票网 智慧彩票投注注册 pk10开奖记录 山东群英会规则