第一篇博客

STM8L15X单片机,IAR软件,初学者

初学stm8l15x芯片,看了下网上的一些例程,改写了一个使用STM8L152K4芯片读取外部光敏电阻电压值,并使用芯片内部ad转换,将对应电压转换为光敏值,同时在高于2.0时触发高报继电器,低于1.0时触发低报继电器;
主函数部分

/*采集外部光敏电压输出值,通过内置12位ad转换显示出对应的光敏值,
高于x1触发继电器一,低于x2触发继电器二,
同时将采集到的光敏值通过lcd四位显示出来
2020-08-13
 by 倪sir*/
#include "stm8l15x.h"
#include "lcd.h"


unsigned char Ht1621Tab[]={
   0x00,0x00,0x00,0x00};

//以下定义LED与按键的接口
#define LED1_GPIO_PORT  GPIOC      //BLUE
#define LED1_GPIO_PINS  GPIO_Pin_1
#define LED2_GPIO_PORT  GPIOC      //RED
#define LED2_GPIO_PINS  GPIO_Pin_0


/*不精确延时函数*/
void Delay(__IO uint16_t nCount)
{
   
    /* Decrement nCount value */
    while (nCount != 0)
    {
   
        nCount--;
    }
}


/*ad的初始化函数*/
void ad_init()
{
   
  CLK_PeripheralClockConfig (CLK_Peripheral_ADC1,ENABLE);
  ADC_Init (ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_1);//ADC1,单次采样,12位,1分频
  
  ADC_SamplingTimeConfig(ADC1,ADC_Group_FastChannels,ADC_SamplingTime_384Cycles);//采样周期设置
  //ADC_VrefintCmd(ENABLE);//内部基准电压使能
  ADC_ChannelCmd (ADC1,ADC_Channel_8,ENABLE);//adc1的8通道为pd6引脚
  //ADC_ChannelCmd (ADC1,ADC_Channel_Vrefint,ENABLE);
  
  ADC_Cmd(ADC1,ENABLE);//ADC1使能                                                                                                                                                                                                                                                                                       
}
void gpio_init()
{
   
    GPIO_Init(LED1_GPIO_PORT, LED1_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);//初始化LED1,GPC4高速高电平推挽输出
    GPIO_Init(LED2_GPIO_PORT, LED2_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);//初始化LED2,GPC4高速高电平推挽输出
    CLK_PeripheralClockConfig (CLK_Peripheral_TIM4,ENABLE); //使能外设时钟,STM8L默认所有外设时钟初始时关闭,使用前徐开启
}

int main( void )
{
   
  u16 u16_adc1_value;   
  u16 VoltageValue;
  
  InitLCD();
  gpio_init();
  ad_init();
  
    while(1)
    {
         
       ADC_SoftwareStartConv (ADC1);//开启软件转换
             
       while(!ADC_GetFlagStatus (ADC1,ADC_FLAG_EOC));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值