STM8L_库函数-模板搭建

先创建一个文件夹,用来存放模板Demo

下载STM8的官方固件库 ,工具与软件 – 嵌入式软件 – STM8微控制器软件

选择STM8L_TOUCH_LIB

 点击获取软件,同意许可协议

 完成后,解压,并运行

 

 

 选择文件下载到的位置

获得如下文件

 

添加STM8L的固件库,L051,L052,L151,L152都可以使用这个库函数

 复制上述文件到如下路径

添加STM8l15x_config.h ,以及STM8l15x_it.c ,STM8l15x_it.h

 

 复制上述文件到如下路径

打开IAR FOR STM8 

 点击创建一个新工程

 选择STM8 ,选择 C语言

选择刚才创建的文件夹的USER位置,保存工程

 再次点击保存,保存工作空间

 右击工程名字,选择增加Add – Add Group..

 分别将创建的四个文件名都添加进去

 

将main.c 拖拉进USER 文件夹内

 

右击STM8_LIBRARY – Add – Add Files..

 按住Shift 全选文件,添加所有文件

 右击 USER – Add – Add Files..

添加STM8l15x_config.h ,以及STM8l15x_it.c ,STM8l15x_it.h

 HARDWARE 和 SYSTEM没有添加文件

 右击工程名字,选择Options..

选择 STM8L052R8,根据自己的芯片型号选择对应的芯片

 

 Debugger 选择 ST-LINK

设置输出.hex文件

 添加文件路径和定义

 一定要下拉选择第二个,才可以

添加完成,点击确定

 

修改main.c

#include "stm8l15x.h"

///****************************************************************************************** //
///时钟初始化
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){}
}
///****************************************************************************************** //
///LED初始化
void LED_Init(void)
{
    GPIO_Init(GPIOB,GPIO_Pin_6,GPIO_Mode_Out_PP_High_Fast);  //设置PB6为 推挽输出 高速 高电平
    GPIO_Init(GPIOB,GPIO_Pin_7,GPIO_Mode_Out_PP_High_Fast);  //设置PB7为 推挽输出 高速 高电平
}
///****************************************************************************************** //
///延时函数
void delay_ms(unsigned int ms)
{
  unsigned int x,y;
  for(x=ms;x>0;x--)
    for(y=3000;y>0;y--);
}
///****************************************************************************************** //
///主函数
void main(void)
{
  CLK_Config();       //时钟初始化
  LED_Init();         //LED初始化
  while(1)
  {
    GPIO_ToggleBits(GPIOB,GPIO_Pin_6);
    GPIO_ToggleBits(GPIOB,GPIO_Pin_7);
    delay_ms(1000);
  };
}

#ifdef USE_FULL_ASSERT

void assert_failed(uint8_t* file, uint32_t line)
{
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  /* Infinite loop */
  while (1){}
}
#endif

 先Clean 然后 Rebuild All

 

 删除此包含文件

 

 取消stm8l15x_conf.h中所有注释

 删除某些不存在的函数体

存在一个警告,忽略这个警告

 官方也明确表示忽略这个警告

点击下载,即可看到 PB6-PB7 两个LED灯闪烁

个人见解,感谢阅读。 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值