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 引用地址:STM8S自学笔记之利用库函数点亮一个LED

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

推荐阅读最新更新时间:2024-11-01 13:15

关于LED组件的结温和引脚温度的热测试系统
LED热测试 为了在不牺牲可靠性的前提下获得最高的光学性能,必须了解特定应用中LED组件的热性能。1993年1月28日的技术备忘录“ LED灯的热特性”讨论了LED灯的基本热模型。本应用简介描述了Avago Technologies用于测量特定应用中安装的LED组件的结温和引脚温度的热测试系统。 通常,对LED组件进行热测试的目的是测量结温到环境的温升,以确保不超过最大结温。LED组件在高于最大结温的温度下的温度循环往往会导致金线键合产生过度的热应力,从而导致过早的灾难性故障。对于大多数Avago Technologies LED灯,最高结温为110°C。可以在产品数据表的“最大绝对额定值”中找到最大结温,也可以从“最大正向电
[测试测量]
关于<font color='red'>LED</font>组件的结温和引脚温度的热测试系统
LD7209:PWM调光LED驱动器
LD7209是一款LED驱动器, 该系列组件能驱动3~8颗WLED背光, 提供38V开路电压保护,可应用于锂电供电之小尺寸屏幕背光LED等便携式产品, 如手机、PDA、、GPS、笔记本电脑及数码相框。 LD7209采用1MHZ高频PWM开关频率设计, 可有效减外部电感及电容器的体积,并利用PWM输入(200HZ~200KHZ)调节LED亮度, 使LED电流正比于PWM责任比。 除了可灵活控制亮度外, LD7209同时整合了可靠的保护特性; 内建软激活可消除激活期间的浪涌电流,并具备LED开路保护、电流过载限制和过热保护。并且在切断模式下, 仅消耗0.1mA, 减少电池功耗。 LD7209效率最高可达90%以上, 内部提供0.
[电源管理]
LD7209:PWM调光<font color='red'>LED</font>驱动器
2015科技新气象:从无人机说到物联网
物联网随处可见改变生活 随着互联网的兴起,人们迫切的希望能够通过发达的互联网网络,在人与物,物与物之间产生联系,比如人们寄出一份快件,希望能够在互联网上实时掌握快件的动态,再比如通过城市交通信息网,人们可以快速查询公交车到站时间和位置,合理安排出行。在不知不觉中,人们很惊奇的发现,物联网概念已经不再需要强调和深化,因为,人们当初对物联网的夙愿,已经成为了生活中的一部分,随处可见,改变着我们的生活,也改变着行业的发展。    物联网引领智能交通开始一轮跨越式发展;RFID技术伴随物联网崛起;门禁结合物联网发展更快;物联网智能照明让生活更智能舒适;电梯物联网远程监控受追捧;智能家居助产业实现突破。    中国无人机产业兴
[嵌入式]
详解基于LED光强分布的摩托车信号灯配光设计
  0  引 言   目前通用的摩托车制动灯光源仍然是白炽灯占主导地位,加上红色的配光 透镜 实现配光要求,其缺点是白炽灯易损坏,功耗大,寿命短,可靠性差,给道路交通带来安全隐患等。 LED (发光二极管) 具备体积小、寿命长、低能耗等优势被逐步应用于机动车车灯光源。目前通用的L ED 摩托车信号灯的配光设计方案主要有三种:第一种是直接将多个食人鱼型L ED 排布成平面状密封在灯罩内,其缺点是相当一部分光处在国标配光屏幕要求的范围外,造成光能的浪费;第二种是采用多个球帽型L ED 排布成平面状密封于灯罩内再加上配光透镜配光,其缺点是一部分光经配光透镜折射、散射和吸收,造成灯具光效比较低;第三种是将多个食人鱼型L ED 排布成平面
[电源管理]
详解基于<font color='red'>LED</font>光强分布的摩托车信号灯配光设计
全球主要国家制定政策推动LED发展
    据最新统计,高亮度LED市场规模将由2010年82.5亿美元,成长至2011年的126亿美元,年成长率将高达53%;其中,LED照明使用颗数由2010年48亿颗,将增至2011年124亿颗,主因为2011年LED灯泡取代传统白炽灯效应开始显现。     继LED背光TV后,LED照明将成为带动LED产业高度成长的应用产品。     虽2010年LED照明占总照明市场比重尚不高,以产值来看仅3.2%,然在节能减碳意识高涨下,世界主要国家已订定LED照明政策,积极推动LED照明产业发展。DIGITIMESResearch分析师兼项目经理林芬卉分析,全球LED灯泡需求量将由2011年5.96亿颗,大幅成长至2013年
[电源管理]
单片机控制花样LED灯闪烁
/*51单片机控制的花样LED灯闪烁程序,在表格中预先存入LED灯的各种闪烁组合,然后利用查表读出表格中的数据,并输出到P2口,这种方法经常用于霓虹灯的控制。本程序原始出处:51Hei单片机http://www.51hei.com ,源代码如下,如有问题请指正 */ #include AT89X51.H void main(void) {const unsigned char design ={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0
[单片机]
明亮经济的 LED 开启移动投影新纪元
多元化科技公司 3M 的新款微型投影仪采用欧司朗光电半导体的 LED。该透影仪可连接到手机和数码相机上,开启了移动投影的新纪元。小巧、明亮、节能的二极管是开发微型投影仪的关键,能实现其他光源无法达到的性能,使屏幕投影尺寸成功突破 1 米大关。 3M 的新款微型投影仪 MPro120 PocketProjector 大小与手机相当,可以将照片或视频投影到墙壁上,以方便观赏。而这一重大突破,要归功于欧司朗光电半导体针对 3M 的个性化要求而特别设计的OSTAR SMT LED 光源。根据照明条件,这些 LED 可以投影一米以上的影像。MPro120 也可以连接到数码相机、笔记本电脑等具有 AV 输入的其他装置上。
[手机便携]
明亮经济的 <font color='red'>LED</font> 开启移动投影新纪元
变量进阶与LED矩阵
局部变量:函数内部声明的变量,只在函数内部有效。 全部变量:在函数外部声明的变量,全局都有效,直到程序执行完毕。 全局变量负作用: 1.降低函数的独立性 2.降低函数的通用性,不利于函数的重复调用。 3.降低程序的清晰度,每个函数执行有可能改变全局值,无法清晰判断全局变量的值。 4.全局变量永久占用内存单元。 原则: 能用局部变量就不用全局变量。若局部变量和全局变量同名,则在函数内,局部变量有效 变量存储类别 1.自动变量  在函数内部,如果不加static ,则是自动变量 2.静态变量  所有的全局变量都是静态变量,如果局部变量加了static,也是静态变量。 加上static ,只执行一次初始化,不会清除赋值。 #in
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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