STM8固件库+IAR 之--GPIO

发布者:未来架构师最新更新时间:2020-01-28 来源: eefocus关键字:STM8  固件库  IAR  GPIO 手机看文章 扫描二维码
随时随地手机看文章

单片机必然先从GPIO开始,开发板上的三个led灯分别是PD0,PD2和PD3,KEY 则是PD7,所以GPIO初始化只初始化PD口即可,直接在main.c里写代码,话不多说,直接上代码:


#include "stm8s.h"


/*========内部高速时钟初始化========*/

void init_clk(void) 

CLK_DeInit(); //寄存器复位

CLK_HSICmd(ENABLE); //内部高速时钟使能 

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2); //内部2分频 8M

}


 


/*========GPIO初始化========*/

void init_gpio(void) 

GPIO_DeInit(GPIOD); //PD口复位

GPIO_Init(GPIOD , GPIO_PIN_7 , GPIO_MODE_IN_PU_NO_IT); // Key初始化 上拉输入

GPIO_Init(GPIOD , GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_SLOW); // LED1~LED3初始化 推挽输出

}


 


/*========ms级延时函数===========*/


/**


*这可是本人专为stm8打造的精确延时哟


*/

void delay_nms(u16 n)

{

u16 i=0;

while(n--)

{

for(i=0;i<1310;i++);

}

}


 


/*========主函数===========*/

/**

*实现3个led的key按键流水灯

*key每按一次3个led分别进行开与关操作

*/

void main(void)

{

u8 count; //自加变量

init_clk();

init_gpio();

while (1)

{

if(!(GPIO_ReadInputData(GPIOD)&GPIO_PIN_7))

{

delay_nms(20); 

if(!(GPIO_ReadInputData(GPIOD)&GPIO_PIN_7))

{

if(count%3==0)

{

GPIO_WriteReverse(GPIOD,GPIO_PIN_0); 

}

if(count%3==1)

{

GPIO_WriteReverse(GPIOD,GPIO_PIN_2); 

}

if(count%3==2)

{

GPIO_WriteReverse(GPIOD,GPIO_PIN_3); 

}

count++;

while(!(GPIO_ReadInputData(GPIOD)&GPIO_PIN_7));

}

}

}

}


功能自然相当简单,3个输出1个输入,一个按键分别控制三个led的亮灭!

关键字:STM8  固件库  IAR  GPIO 引用地址:STM8固件库+IAR 之--GPIO

上一篇:IAR FOR STM8 简单使用教程
下一篇:STM8S103调试PWM的踩坑过程

推荐阅读最新更新时间:2024-10-26 18:37

IAR FOR STM8 学习笔记 固件库 GPIO
经过一番挣扎,还是决定使用官方的固件库了。。 从网上下一个STM8S的固件库,记得是FOR IAR的。 找到里面的IAR模板就可以开始用了。 这些都是直接写好的库函数,可以直接调用,但首先得先读懂,先了解些必备知识。 STM8的寄存器的地址 在STM8中,与某个外围设备有关的寄存器在地址上都是顺序排列的;比如与GPIO有关的寄存器有ODR、IDR、DDR、CR1、CR2,与PA口有关的这五个寄存器就被安排在了0x00 5000~0x00 5004这5个地址空间中,它们有一个0x005000的基地址,分别偏移0,1,2,3,4。 ”stm8s.h 中与GPIO有关的定义,以及固件库中访问外围设备寄存器的方法
[单片机]
<font color='red'>IAR</font> FOR <font color='red'>STM8</font> 学习笔记 <font color='red'>固件库</font> <font color='red'>GPIO</font>
STM8固件库+IAR 之--GPIO
单片机必然先从GPIO开始,开发板上的三个led灯分别是PD0,PD2和PD3,KEY 则是PD7,所以GPIO初始化只初始化PD口即可,直接在main.c里写代码,话不多说,直接上代码: #include stm8s.h /*========内部高速时钟初始化========*/ void init_clk(void) { CLK_DeInit(); //寄存器复位 CLK_HSICmd(ENABLE); //内部高速时钟使能 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2); //内部2分频 8M } /*========GPIO初始化========*/ vo
[单片机]
STM8固件库+IAR 之--CLK
STM8的时钟控制十分强大,用户可独立地管理各个时钟源,并将它们分配到CPU或各个外设。主时钟和CPU时钟均带有预分频器。具有安全可靠的无故障时钟切换机制,可在程序运行中将主时钟从一个时钟源切换到另一个时钟源。本程序是更改内部2M或者外部8M晶振,让led2闪灯,通过不同初始化,能观察出led的快慢,上代码: #include stm8s.h /*========内部高速时钟初始化========*/ void init_hsiclk(void) { CLK_DeInit(); //寄存器复位 CLK_HSICmd(ENABLE); //内部高速时钟使能 CLK_HSIPrescalerConfig(CLK_PRES
[单片机]
STM8固件库+IAR 之--环境
板子算拿到手真的不少时间了,一直一些乱七八糟的事情侬着,没有好好的修炼修炼这块板子,Now……直接秀秀俺的开发板,三合一套件~~ 下了个基础程序,没啥问题!不过我看着板子stm8是STM8S207SB,可是在环境选STM8S207S8才靠谱,反正我看着像B……哈…… 环境是IAR FOR STM8 V1.10,具体怎么安装,怎么和谐网上n多,不过IAR有个毛病,重复安装可能和谐会有问题,第一次安装后卸载,再安装可能就比较麻烦了,所以最好第一次就成功,否则......后果自负...... 固件库用的是ST发布的V1.1.1版,虽然现在有更新版本,大差不差,反正现在这套我用着挺好,还没发现什么问题~
[单片机]
<font color='red'>STM8</font><font color='red'>固件库</font>+<font color='red'>IAR</font> 之--环境
STM8固件库GPIO学习笔记
1、STM8的寄存器映射 STM8 core采用了哈佛结构,有两条总线分别用于访问Flash和RAM,但Flash,RAM,GPIO and peripheral registers都被映射到了线性的16Mbyte(24位地址)的存储器空间中;stm8s208rb的GPIO and peripheral registers被映射到了0x00 5000 ~ 0x00 57FF地址空间。所以要在C语言中访问外围设备寄存器我们只需要指向这些地址空间的指针即可了。 2、STM8的寄存器的地址 在STM8中,与某个外围设备有关的寄存器在地址上都是顺序排列的;比如与GPIO有关的寄存器有ODR、IDR、DDR、CR1、CR2,与PA口有
[单片机]
IAR for stm8使用标准固件库的方法以及注意事项
阅读数:11304 标准库其实挺方便的。有了一个模板之后,如果改参数,根本就不需要再去查手册,重新定义寄存器值了。 第一部分,stm8标准库介绍。 stm8的标准库名称代码是stsw-stm8069,根据这个代码就可以到st的官网上下载到最新的固件库。 解压固件库后,有几个文件夹,我这里只是简单的说明各文件夹和文件的作用,具体的说明参考文件包中的chm帮助文档。 Libraries是驱动文件夹,里面的inc文件夹是h文件,src文件夹是c文件,这是最关键的东西。 Utilities是stm自己提供的EVAL开发板程序,如果没用这个EVAL开发板可以无视,有也可以无视,反正就很简单的一个led程序 Project文件夹是工程
[单片机]
STM8固件库+IAR 之--UART3
Stm8的串口:主要功能: 1:支持异步传输所以成为UART 2:lin模式 主从 3:红外编码模式 4:智能卡模拟功能 以上功能并不是所有串口都支持,stm8最多的是3个串口,配置简单,多说无益 本来想先写定时器1来着,可手头上正好有串口的程序,整理整理先贴上来呗~ 首先到stm8s_conf.h把 #define _UART3 (1) 打开,否则uart3不能用,重新编译一下静态库 贴main.c代码: #include stm8s.h /*========内部高速时钟初始化========*/ void init_hsiclk(void) { CLK_DeInit(); //寄存器复位 CLK_HSICmd(ENABL
[单片机]
IAR for stm8使用标准固件库的方法以及注意事项
标准库其实挺方便的。有了一个模板之后,如果改参数,根本就不需要再去查手册,重新定义寄存器值了。 第一部分,stm8标准库介绍。 stm8的标准库名称代码是stsw-stm8069,根据这个代码就可以到st的官网上下载到最新的固件库。 解压固件库后,有几个文件夹,我这里只是简单的说明各文件夹和文件的作用,具体的说明参考文件包中的chm帮助文档。 Libraries是驱动文件夹,里面的inc文件夹是h文件,src文件夹是c文件,这是最关键的东西。 Utilities是stm自己提供的EVAL开发板程序,如果没用这个EVAL开发板可以无视,有也可以无视,反正就很简单的一个led程序 Project文件夹是工程模板文件,里面有两个重
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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