按以往的单片机开发流程,第一步先来点个灯。
基于STM8与STM32同属STM系列,要想点亮一个灯,所需步骤不过就三步:
开启相应时钟
初始化GPIO模式
拉高/置低来点亮LED
硬件电路
主控部分:
LED电路:
代码编写
1.led.c 部分内容如下:
#include "led.h"
/*GPIO*/
#define LED_PORT GPIOA
#define LED1_PIN GPIO_Pin_6
#define LED2_PIN GPIO_Pin_7
/*LED*/
#define LED1 GPIO_Pin_6
#define LED2 GPIO_Pin_7
/*Functions*/
void Led_Init(void)
{
/*GPIO Init*/
GPIO_Init(LED_PORT,LED1_PIN|LED2_PIN,GPIO_Mode_Out_PP_Low_Slow);
/*Led Init*/
GPIO_ResetBits(LED_PORT, LED1_PIN|LED2_PIN);
}
void Led_Set(GPIO_Pin_TypeDef ledx, uint8_t state)
{
if(state == 1) GPIO_SetBits(LED_PORT,ledx);
else GPIO_ResetBits(LED_PORT,ledx);
}
2.main.c 部分内容如下:
/* Includes ------------------------------------------------------------------*/
#include "stm8l15x.h"
#include "led.h"
/* Parameter Definition ------------------------------------------------------------------*/
uint8_t LED1_State = 1,LED2_State = 0;
/* Functions ------------------------------------------------------------------*/
/**
* @brief CLK Config.
* @param None
* @retval None
*/
void Clk_Config(void)
{
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);//系统1分频,16M
}
/**
* @brief LED Flash.
* @param None
* @retval None
*/
void LED_Flash(void)
{
Led_Set(LED2, LED2_State);
Led_Set(LED1, LED1_State);
LED1_State = !LED1_State;
LED2_State = !LED2_State;
Delay_ms(500);
}
/* Main Functions ------------------------------------------------------------------*/
/**
* @brief Main program.
* @param None
* @retval None
*/
int main(void)
{
/*System Init*/
Clk_Config();
Led_Init();
/* Infinite loop */
while (1)
{
LED_Flash();
}
}
其中Delay_ms()函数之前自己尝试写过,发现延时时间并不精准后,借鉴了大佬写的delay代码。
总结
LED点灯相对简单,因为STM8与STM32不同,其中GPIO并没有单独的时钟,所以只需确定Delay函数的时钟就好了。
上一篇:STM8L151C8学习笔记3:OLED驱动
下一篇:STM8L151C8学习笔记0:建工程
推荐阅读最新更新时间:2024-11-09 00:19
设计资源 培训 开发板 精华推荐
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位
- 直播已结束|贝能国际新型玻璃破碎检测方案
- 免费尝鲜:ST 双核无线 MCU STM32WB55 开发板
- 速度与激情,为你私人订制。R&S携多功能基础示波器带你身临其境!
- TI直播| 低功耗技术在 Wi-Fi 摄像头及 PIR 红外传感器设计中的应用
- Follow me第2期来袭,与得捷一起解锁开源硬件 Adafruit ESP32-S3 TFT Feather!
- 有奖国产芯直播:先楫800MHz RISC-V MCU高能秀,岂止控4只伺服电机,干货多多
- 听说这个夏天看TI MCU视频能赢好礼!
- EMI 有奖调查
- 电阻哪个强?看Vishay演示视频 抢楼发言赢好礼
- TI模拟博文深度阅读季,赢小米盒子!