最近两天在做STM8S103的开发,调完硬件后,就开始编写软件了,第一步当然又是点亮LED灯了,结果很尴尬的死活点不亮!后来各种百度,认真查看数据手册,才发现一个很大的坑,由于粗心大意,没有看到,做个笔记,以为备忘。
1、流程
点亮LED,流程跟STM32基本一样:
- (1)配置GPIO(STM8S不需要专门配置每个引脚的时钟,最开始的时候配置系统时钟即可)
- (2)GPIO输出高低电平
废话不说,直接上代码:
2、上代码
//FUNCKTION: LED灯GPIO口初始化
//PARA : 无
//RETURN : 无
void LED_Config()
{
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW);
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_SLOW);
}
//FUNCKTION: 打开LED灯
//PARA : 无
//RETURN : 无
void LED_ON()
{
GPIO_WriteHigh(GPIOB, GPIO_PIN_4);
GPIO_WriteHigh(GPIOB, GPIO_PIN_5);
}
//FUNCKTION: 关闭LED灯
//PARA : 无
//RETURN : 无
void LED_OFF()
{
GPIO_WriteLow(GPIOB, GPIO_PIN_4);
GPIO_WriteLow(GPIOB, GPIO_PIN_5);
}
3、死活点不亮LED的坑
因为使用的是*PB4和PB5这两个GPIO口,查看数据手册可以看到如下图:
可以看到红圈内标记该GPIO口为T(3),继续下翻,到该表格的最下面,有关T(3)的描述:
英语不好,就不献丑翻译了,反正意思是要自己在外部添加上拉电阻或下拉电阻,不然没用。
于是,赶紧找个导线,飞个线,接个电阻,OK,完事,亮了。~~~哈哈。。。