通过开发板的上的SB4,SB5,SB6跳线来选择STM8L001芯片,STM8L050和STM8L001都属于STM8L系列芯片,所有工程文件就还是用之前的STM8L050创建的工程文件,通过GPIO驱动来验证工程的可运行性。
一、硬件部分
使用PB5引脚来驱动LED。
二、程序部分
2.1、在工程文件中,选择STM8L001芯片型号
2.2、程序代码
2.2.1、LED代码
//led/c
#include "stm8l15x.h"
#include "led.h"
void led_init(void)
{
GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);
}
//led.h
#ifndef __LED_H
#define __LED_H
#define LED_GPIO_PORT (GPIOB)
#define LED_GPIO_PINS (GPIO_Pin_5)
#define led_tog() GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS)
void led_init(void);
#endif
复制代码
2.2.2、主程序
void main(void)
{
CLK_Config(); //时钟初始化
Delay(0x2fffff); //延时5S
led_init(); //led初始化
while (1)
{
led_tog(); //LED取反
Delay(0xffff);
}
}
复制代码
三、执行结果
3.1、在原来的工程文件仿真时,程序执行到
CLK_Config(); //时钟初始化
//时钟初始化
static void CLK_Config(void)
{
/* Select HSI as system clock source */
CLK_SYSCLKSourceSwitchCmd(ENABLE);
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
/* system clock prescaler: 1*/
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
//while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)
//{}
}
复制代码
这个函数while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI){} 位置跳转转不出来,把这个函数屏蔽掉以后,程序可以运行下去,后面再看看具体原因是什么。
3.2、运行的视频
stm8l001芯片运行正常。
原贴链接:http://www.stmcu.org.cn/module/forum/thread-619530-1-1.html |