STM8L15x for IAR点亮LED

发布者:真情相伴最新更新时间:2019-03-29 来源: eefocus关键字:STM8L15x  IAR  点亮LED 手机看文章 扫描二维码
随时随地手机看文章

一、电路分析


 STM8L151G6U6  的LED有两个,分别是 :LED1:POWER_LED  ----  PB1  ;


LED2:STATUS_LED  ----  PB2


二、IAR新建工程准备


1.在项目文件夹里创建3个文件夹


2.fWLIB用来存放stm8板子的各种配置头文件和.c文件


3.project用来存放工程文件和debug日志


三、新建工程


1.Create New Project


.

2.选择工程模板------c,将工程命名为led,将工程文件保存在project下


3.addd flies


四、配置选项卡


1.右键选项


2.GO --->target


3.GO----->library C

4..GO----->library O


5.C/C++---->Optimitions  代码的优化


 

6.C/C++---->preprocessor


$PROJ_DIR$     表示用户建项目的当前目录,途中显示的有stm8115x_conf头文件在项目中会使用,如果不把用户文件夹包含进来会报错                         显示找不到stm8115x_conf.h头文件。

$PROJ_DIR$..Fwliblibraryinc

$PROJ_DIR$..user

$PROJ_DIR$..FWlibinc

$PROJ_DIR$..FWliblibrarysrc


7.Output converter      设置输出的可执行文件的形式,通常有hex和bin两种形式:

8.设置下载工具的类型,STM8可以支持串口下载(比较麻烦!)和ST-LINK下载,我们用ST-LINK下载



五、代码的编写


1.main.c


#include "stm8_board.h"

#include "timing_delay.h"

 

int main( void )

{

  

turn_led(LED_STATUS, OFF);

 

}

2.led.c


 /****************************************

 *文件名  :led.c

 *描述    :GPIO口配置函数库   

 *实验平台:STM8L151g6开发板

 *作者    :LUOYIRAN    

 *QQ      :969303624

 *修改时间:2018.7.15

 *STM8L151g6开发板硬件连接

    |--------------------|

    |  LED1-power-PB1    |

    |  LED2-status-PB2   |

    |--------------------|

 *****************************************/

#include "led.h"

#include "stm8l15x_gpio.h"

 

 

void turn_led(uint8_t which, uint8_t cmd)

{

 

   if(OFF == cmd)   //如果发出关闭信号

 

        {

         if(which == LED_POWER)  //如果要关LED1

     GPIO_Init(SYSRUN_LED_PIN, GPIO_Mode_Out_PP_High_Slow);//初始化LED1

     else if(which == LED_STATUS) //如果要关LED2

       GPIO_Init(LED_STATUS_PIN, GPIO_Mode_Out_PP_High_Slow);//初始化LED2

          }

 

 

   else //如果发起开启信号

  {

     if(which == LED_POWER)    //如果要开LED1

       GPIO_Init(SYSRUN_LED_PIN, GPIO_Mode_Out_PP_Low_Slow); //初始化LED1

     else if(which == LED_STATUS)//如果要开LED2

       GPIO_Init(LED_STATUS_PIN, GPIO_Mode_Out_PP_Low_Slow);   //初始化LED2  

}

 

 

 }

LED.H


 

#ifndef __LED_H

#define __LED_H

 

#include "stm8_board.h"

#include "timing_delay.h"

#include "stm8l15x.h"

#include "stm8l15x_gpio.h"

 

 

                                                        

extern void turn_led(uint8_t which, uint8_t cmd);

 

#endif /*__LED_H*/

3.gpio.c/gpio.h(从库里拿)


#include "stm8l15x_gpio.h"

 

/** @addtogroup STM8L15x_StdPeriph_Driver

  * @{

  */

  

/** @addtogroup I2C

  * @{

  */

 

/* Exported types ------------------------------------------------------------*/

 

/** @addtogroup GPIO_Exported_Types

  * @{

  */

 

/**

  * @defgroup GPIO_Modes

  *

  * @brief

  *     

  * Bits definitions:

  * - Bit 7: 0 = INPUT mode

  *          1 = OUTPUT mode

  *          1 = PULL-UP (input) or PUSH-PULL (output)

  * - Bit 5: 0 = No external interrupt (input) or No slope control (output)

  *          1 = External interrupt (input) or Slow control enabled (output)

  * - Bit 4: 0 = Low level (output)

  *          1 = High level (output push-pull) or HI-Z (output open-drain)

  * @{

  */

 

 

/**

  * @}

  */

  

/** @defgroup GPIO_Pin

  * @{

  */

 

 

 

/**

  * @}

  */

  

/**

  * @}

  */

  

/* Exported constants --------------------------------------------------------*/

/* Exported macros -----------------------------------------------------------*/

 

/** @addtogroup GPIO_Exported_Macros

  * @{

  */

 

/**

  * @brief Macro used by the assert function to check the different functions parameters.

  */

 

/**

  * @brief Macro used by the assert function in order to check the different

  * values of GPIOMode_TypeDef.

  */

#define IS_GPIO_MODE(MODE)

  (((MODE) == GPIO_Mode_In_FL_No_IT)       ||

   ((MODE) == GPIO_Mode_In_PU_No_IT)       ||

   ((MODE) == GPIO_Mode_In_FL_IT)          ||

   ((MODE) == GPIO_Mode_In_PU_IT)          ||

   ((MODE) == GPIO_Mode_Out_OD_Low_Fast)   ||

   ((MODE) == GPIO_Mode_Out_PP_Low_Fast)   ||

   ((MODE) == GPIO_Mode_Out_OD_Low_Slow)   ||

   ((MODE) == GPIO_Mode_Out_PP_Low_Slow)   ||

   ((MODE) == GPIO_Mode_Out_OD_HiZ_Fast)   ||

   ((MODE) == GPIO_Mode_Out_PP_High_Fast)  ||

   ((MODE) == GPIO_Mode_Out_OD_HiZ_Slow)   ||

   ((MODE) == GPIO_Mode_Out_PP_High_Slow))

 

/**

  * @brief Macro used by the assert function in order to check the different

  * values of GPIO_Pins.

  */

#define IS_GPIO_PIN(PIN) ((PIN) != (uint8_t)0x00)

 

/**

  * @}

  */

 

 

/* Exported functions ------------------------------------------------------- */

/* Initialization and Configuration *******************************************/

void GPIO_DeInit(GPIO_TypeDef* GPIOx);

void GPIO_Init(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode);

void GPIO_ExternalPullUpConfig(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, FunctionalState NewState);

 

/* GPIO Read and Write ********************************************************/

void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t GPIO_PortVal);

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal);

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin);

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin);

void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin);

uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);

uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin);

BitStatus GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin);

 

 

 

/**

  * @}

  */

  

/**

  * @}

  */

 

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

#include "stm8l15x_gpio.h"

 

/** @addtogroup STM8L15x_StdPeriph_Driver

  * @{

  */

 

/** @defgroup CLK 

  * @brief CLK driver modules

  * @{

  */ 

  

/* Private typedef -----------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/

/* Private function prototypes -----------------------------------------------*/

/* Private functions ---------------------------------------------------------*/

 

/** @defgroup GPIO_Private_Functions

  * @{

  */ 

 

 

/** @defgroup GPIO_Group1 Initialization and Configuration

 *  @brief   Initialization and Configuration

 *

@verbatim   

 ===============================================================================

                        Initialization and Configuration

 ===============================================================================  

@endverbatim

  * @{

  */

 

/**

  * @brief  Deinitializes the GPIOx peripheral registers to their default reset values.

  * @param  GPIOx: Select the GPIO peripheral number (x = A to I).

  * @retval None

  */

void GPIO_DeInit(GPIO_TypeDef* GPIOx)

{

  GPIOx->CR2 = GPIO_CR2_RESET_VALUE; /* Reset Control Register 2 */

  GPIOx->ODR = GPIO_ODR_RESET_VALUE; /* Reset Output Data Register */

  GPIOx->DDR = GPIO_DDR_RESET_VALUE; /* Reset Data Direction Register */

  GPIOx->CR1 = GPIO_CR1_RESET_VALUE; /* Reset Control Register 1 */

}

 

/**

  * @brief  Initializes the GPIOx according to the specified parameters.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : This parameter contains the pin number

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7              

  * @param  GPIO_Mode : This parameter can be a value of the

  *           This parameter can be one of the following values:

  *            @arg GPIO_Mode_In_FL_No_IT: Input floating, no external interrupt

  *            @arg GPIO_Mode_In_PU_No_IT: Input pull-up, no external interrupt

  *            @arg GPIO_Mode_In_FL_IT: Input pull-up, external interrupt

  *            @arg GPIO_Mode_Out_OD_Low_Fast: Output open-drain, low level, 10MHz

  *            @arg GPIO_Mode_Out_PP_Low_Fast: Output push-pull, low level, 10MHz

  *            @arg GPIO_Mode_Out_OD_Low_Slow: Output open-drain, low level, 2MHz

  *            @arg GPIO_Mode_Out_PP_Low_Slow: Output push-pull, low level, 2MHz

  *            @arg GPIO_Mode_Out_OD_HiZ_Fast: Output open-drain, high-impedance level, 10MHz

  *            @arg GPIO_Mode_Out_PP_High_Fast: Output push-pull, high level, 10MHz

  *            @arg GPIO_Mode_Out_OD_HiZ_Slow: Output open-drain, high-impedance level, 2MHz

  *            @arg GPIO_Mode_Out_PP_High_Slow: Output push-pull, high level, 2MHz

  * @retval None

  */

 

void GPIO_Init(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)

{

  /*----------------------*/

  /* Check the parameters */

  /*----------------------*/

 

  assert_param(IS_GPIO_MODE(GPIO_Mode));

  assert_param(IS_GPIO_PIN(GPIO_Pin));

 

  /* Reset corresponding bit to GPIO_Pin in CR2 register */

  GPIOx->CR2 &= (uint8_t)(~(GPIO_Pin));

 

  /*-----------------------------*/

  /* Input/Output mode selection */

  /*-----------------------------*/

 

  if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x80) != (uint8_t)0x00) /* Output mode */

  {

    if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x10) != (uint8_t)0x00) /* High level */

    {

      GPIOx->ODR |= GPIO_Pin;

    } else /* Low level */

    {

      GPIOx->ODR &= (uint8_t)(~(GPIO_Pin));

    }

    /* Set Output mode */

    GPIOx->DDR |= GPIO_Pin;

  } else /* Input mode */

  {

    /* Set Input mode */

    GPIOx->DDR &= (uint8_t)(~(GPIO_Pin));

  }

 

  /*------------------------------------------------------------------------*/

  /* Pull-Up/Float (Input) or Push-Pull/Open-Drain (Output) modes selection */

  /*------------------------------------------------------------------------*/

 

  if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x40) != (uint8_t)0x00) /* Pull-Up or Push-Pull */

  {

    GPIOx->CR1 |= GPIO_Pin;

  } else /* Float or Open-Drain */

  {

    GPIOx->CR1 &= (uint8_t)(~(GPIO_Pin));

  }

 

  /*-----------------------------------------------------*/

  /* Interrupt (Input) or Slope (Output) modes selection */

  /*-----------------------------------------------------*/

 

  if ((((uint8_t)(GPIO_Mode)) & (uint8_t)0x20) != (uint8_t)0x00) /* Interrupt or Slow slope */

  {

    GPIOx->CR2 |= GPIO_Pin;

  } else /* No external interrupt or No slope control */

  {

    GPIOx->CR2 &= (uint8_t)(~(GPIO_Pin));

  }

 

}

 

/**

  * @brief  Configures the external pull-up on GPIOx pins.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pin number

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7     

  * @param  NewState : The new state of the pull up pin.

  *           Can be ENABLE or DISABLE  

  * @retval None

  */

void GPIO_ExternalPullUpConfig(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, FunctionalState NewState)

{

  /* Check the parameters */

  assert_param(IS_GPIO_PIN(GPIO_Pin));

  assert_param(IS_FUNCTIONAL_STATE(NewState));

 

  if (NewState != DISABLE) /* External Pull-Up Set*/

  {

    GPIOx->CR1 |= GPIO_Pin;

  } else /* External Pull-Up Reset*/

  {

    GPIOx->CR1 &= (uint8_t)(~(GPIO_Pin));

  }

}

 

/**

  * @}

  */

 

/** @defgroup GPIO_Group2 GPIO Read and Write

 *  @brief   GPIO Read and Write

 *

@verbatim   

 ===============================================================================

                              GPIO Read and Write

 ===============================================================================  

@endverbatim

  * @{

  */

 

/**

  * @brief  Writes data to the specified GPIO data port.

  * @note   The port must be configured in output mode.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_PortVal : Specifies the value to be written to the port output

  *         data register.

  * @retval None

  */

void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t GPIO_PortVal)

{

  GPIOx->ODR = GPIO_PortVal;

}

 

/**

  * @brief  Sets or clears the selected data port bit.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin: Specifies the port bit to be written.

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7   

  * @param  GPIO_BitVal: specifies the desired status to be written.

  *         This parameter can be SET or RESET

  * @retval None

  */

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal)

{

  /* Check the parameters */

  assert_param(IS_GPIO_PIN(GPIO_Pin));

  assert_param(IS_STATE_VALUE(GPIO_BitVal));

 

  if (GPIO_BitVal != RESET)

  {

    GPIOx->ODR |= GPIO_Pin;

 

  }

  else

  {

    GPIOx->ODR &= (uint8_t)(~GPIO_Pin);

  }

}

 

/**

  * @brief  Writes high level to the specified GPIO pins.

  * @note   The port must be configured in output mode.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pins to be turned high.

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7   

  * @retval None

  */

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin)

{

  GPIOx->ODR |= GPIO_Pin;

}

 

/**

  * @brief  Writes low level to the specified GPIO pins.

  * @note   The port must be configured in output mode.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pins to be turned low

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7 

  * @retval None

  */

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin)

{

  GPIOx->ODR &= (uint8_t)(~GPIO_Pin);

}

 

/**

  * @brief  Toggles the specified GPIO pins.

  * @note   The port must be configured in output mode.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pins to be toggled.

  * @retval None

  */

void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin)

{

  GPIOx->ODR ^= GPIO_Pin;

}

 

/**

  * @brief  Reads the specified GPIO input data port.

  * @note   The port must be configured in input mode.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @retval The GPIOx input data port value.

  */

uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)

{

  return ((uint8_t)GPIOx->IDR);

}

 

/**

  * @brief  Reads the specified GPIO output data port.

  * @note   The port must be configured in input mode.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @retval The GPIOx  output data port value.

  */

uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)

{

  return ((uint8_t)GPIOx->ODR);

}

 

/**

  * @brief  Reads the specified GPIO input data pin.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pin number.

  *           This parameter can be one of the following values:

  *            @arg GPIO_Pin_0: Pin 0

  *            @arg GPIO_Pin_1: Pin 1

  *            @arg GPIO_Pin_2: Pin 2

  *            @arg GPIO_Pin_3: Pin 3

  *            @arg GPIO_Pin_4: Pin 4

  *            @arg GPIO_Pin_5: Pin 5

  *            @arg GPIO_Pin_6: Pin 6

  *            @arg GPIO_Pin_7: Pin 7 

  * @retval BitStatus : GPIO input pin status.

  */

BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

  return ((BitStatus)(GPIOx->IDR & (uint8_t)GPIO_Pin));

}

 

/**

  * @brief  Reads the specified GPIO Output data pin.

  * @param  GPIOx : Select the GPIO peripheral number (x = A to I).

  * @param  GPIO_Pin : Specifies the pin number

  * @retval BitStatus : GPIO output pin status.

  */

BitStatus GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

{

  return ((BitStatus)(GPIOx->ODR & (uint8_t)GPIO_Pin));

}

 

/**

  * @}

  */ 

 

/**

  * @}

  */ 

  

/**

  * @}

  */

 

/**

  * @}

  */

 

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

关键字:STM8L15x  IAR  点亮LED 引用地址:STM8L15x for IAR点亮LED

上一篇:stm8的GPIO引脚模式
下一篇:stm8 IAR 编译错误atal Error[Pe035]

推荐阅读最新更新时间:2024-03-16 16:26

IAR+STM8——GPIO
第二天,从最基本的IO操作开始学习。在STM上IO绝大多数是GPIO。 刚开始学习,测试程序不要搞复杂,越简单越不容易出错。下面是代码,没有使用STM8官方固件库。 // GPIO测试 #i nclude iostm8s207sb.h #define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // 开发板上的LED1接在PD3上 void delay(unsigned int count) { while(count--); } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置P
[单片机]
s3c2440学习之路-001 汇编点亮led
1. 原理分析 2. 主要流程 3. 源码 4. dis文件分析 硬件平台:jz2440 软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5 1.原理分析 点亮LED最简单的方法就是给二极管正负极接上电,中间串一个电阻 图1 点亮LED 由于2440芯片Pin脚的驱动能力不够,所以无法直接用Pin脚来点亮LED,只能把Pin脚连接到LED的负极,充当开关的作用。 当Pin脚为高电平时,LED两端无电压差,LED灭 当Pin脚为低电平时,LED两端有电压差,LED亮 图2 2440连接LED 2.主要流程 2.1原理图介绍 这里只介绍LED1, LED1负极与2440的GPF4相连,中
[单片机]
s3c2440学习之路-001 汇编<font color='red'>点亮</font><font color='red'>led</font>
图解IAR开发msp430项目建立设置和下载
下面按部图解IAR开发msp430单片机项目建立设置和下载 第一步: 第二步 第三步 第四步 第五步 第六步 第七步: 第八步 第九步 第十步 第十一步
[单片机]
图解<font color='red'>IAR</font>开发msp430项目建立设置和下载
#pragma vector语句在IAR for MSP430中断程序编程过程中的使用
在使用keil对STC89C52单片机程序开发过程中使用 void Name_Function interrupt n 来作为中断服务函数程序的入口,但是在IAR for MSP430程序开发过程中则使用#pragma vector提供中断函数入口地址,并使用 _interrupt void _Name_Function来定义中断函数名称,示例如下: #pragma vector = 0xFFF4; //WDT_VECTOR = 0xFFF4 是看门狗定时器中断地址 __interrupt void Watchdog_Timer(void) { /****/ } 1、上面的入口地址也可写成#pragma vector
[单片机]
IAR for STM8 使用固件库
1、新建IAR工程 新建一个IAR工程。 2、复制文件夹 1)、打开解压后的固件库文件夹,打开Libraries文件夹,将STM8S _StdPeriph_Driver 复制到新建的工程文件夹里。 将Project/STM8S_StdPeriph_Template下中main.c、stm8s_conf.h、stm8s_it.c、stm8s_it.h四个文件夹复制到新建文件夹中。如有重复文件请选择替换。如图所示: 3、文件分组 打开工程,右击工程名,在弹出的菜单中进行如下图所示设置: 在弹出的对话框中可以给组命名,仿照STVD以及其他,我们可以给工程命名两个组:USER以及StdPeriph_Dr
[单片机]
STM8L15X液晶初始化程序
再次用到了STM8L15X的液晶功能,有几点要注意的。 1. LCD可以配置成内部的,也可以配置成外部的。内部的可以调整,开起来会更灵活一点。但是要注意: 1)低功耗模式,无法使用内部电压,因为内部电压的电路会增加CPU电流,所以如果启用了低功耗模式,采用内部电压供电给LCD,那么是点不亮的。 2)如果采用外部电压供电,VLCD引脚不能接外部电压,只能接1uF或其它参数电容,否则也点不亮。 2. 注意以上内容,基本可以点亮LCD。至于怎么让LCD显示得正确或者更清晰则要根据LCD参数设定相关参数了。 void LCD_GLASS_Init(void) { // unsigned char i; /* Enab
[单片机]
IAR for ARM介绍、下载、安装与注册
Ⅱ、IAR介绍 1.关于IAR IAR是一家公司的名称,也是一种集成开发环境的名称,我们平时所说的IAR主要是指集成开发环境。 IAR这家公司的发展也是经历了一系列历史变化,从开始针对8051做C编译器,逐渐发展至今,已经是一家庞大的、技术力量雄厚的公司。而IAR集成开发环境也是从单一到现在针对不同处理器,拥有多种IAR版本的集成开发环境。 本文主要讲述IAR for ARM这一款开发工具,而IAR拥有多个版本,支持的芯片有上万种,请参看官网: https://www.iar.com/device-search/#!?tab=devices IAR针对不同内核处理器,是有不同的集成开发环境,下面截取部分IAR开
[单片机]
<font color='red'>IAR</font> for ARM介绍、下载、安装与注册
IAR STM8串口printf输出
IAR用printf输出与keil设置不太一样,首先当然先要包含头文件 stdio.h ,然后改写putchar函数 int putchar(int c) { while ((UART2_SR&0x80)==0x00); UART2_sendchar((u8)c); return (c); } 在Options中将Library Configuration改成Full 在Library Options中将Printf formatter改成Large即可。
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved