⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 STM8s
💻 C
字号:
/* MAIN.C file
 * Copyright (c) 轩微科技
 通过外部中断PD7,实显在液晶显示开发板上AD的电压输出。

 */
 
#include "stm8s.h"

#include "stm8s_adc1.h"
#include "stm8s_gpio.h"
#include "stm8s_exti.h"
#include "lcd162a.h"


#define LEDS_PORT (GPIOD)
#define LED1_PIN  (GPIO_PIN_3)
#define LED2_PIN  (GPIO_PIN_2)
#define LED3_PIN  (GPIO_PIN_1)
#define LED4_PIN  (GPIO_PIN_0)

@far @interrupt void GPIOC5(void)
{
	
	u8  qian,bai,shi,ge;
	 u16 Conversion_Value = 0;
	 lcd162a_cls();
GPIO_WriteReverse(GPIOD, (GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3 ));
    /* Get converted value */
    Conversion_Value = ADC1_GetConversionValue();
		
			//得到电压,外部电压4.83v,放大1000倍
		Conversion_Value=Conversion_Value*4.83/1024*1000;
		qian=Conversion_Value/1000;
		bai=(Conversion_Value%1000)/100;
		shi=(Conversion_Value%100)/10;
		ge=(Conversion_Value%10);
		
		
		
		//将数据通过串口输出
		
		lcd162a_DispOneChar(1,1,qian+48); 
		lcd162a_DispOneChar(1,2,46);  //小数点
		lcd162a_DispOneChar(1,3,bai+48); 		lcd162a_DispOneChar(1,4,shi+48); 
		lcd162a_DispOneChar(1,5,ge+48); 
		
		
		//putIntLine(Conversion_Value);


		ADC1_ClearFlag (ADC1_FLAG_AWS9 );
	
}



//延时一段时间
void xwDelay(void)
{
	int i=2;
	int j=200;
	while(i--)while(j--);
}



main()
{
    u8 *p1="Hello,world.YSU";
		GPIO_Init(GPIOD, (GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3 ), GPIO_MODE_OUT_PP_LOW_FAST );
		GPIO_Init(GPIOC, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST );
 GPIO_Init(GPIOB, (GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6 |GPIO_PIN_7 |GPIO_PIN_0), GPIO_MODE_OUT_PP_LOW_FAST );
	
	// GPIO_Init(GPIOC, GPIO_PIN_5, GPIO_MODE_IN_PU_IT); 
	// GPIO_Init(GPIOE, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT); 
	//反初始化串口
	
	//反初始化ADC
	ADC1_DeInit();
	//初始化ADC,连续转换模式
	ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,ADC1_CHANNEL_9,ADC1_PRESSEL_FCPU_D2,ADC1_EXTTRIG_TIM,DISABLE,ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL9, DISABLE);
	//开始转换
	ADC1_StartConversion();
	EXTI_SetTLISensitivity(EXTI_SENSITIVITY_RISE_ONLY);
	//开启PD7的TLI中断检测,开启后无需进行全局中断开启即可产生TLI中断请求.
	GPIO_Init(GPIOD,GPIO_PIN_7,GPIO_MODE_IN_FL_IT);
	lcd162a_Reset();
  lcd162a_cls();
   

    lcd162a_ePutstr(1,1,p1);    
	while (1)
	{
	


	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -