嵌入式STM32F10-写任务步骤

/*
	第一步:添加
		#include "stm32f10x.h"
		uint32_t TimeDisplay = 0; 
		int mian()
		{
			/......添加驱动初始化....../
			SysTick_Config(SystemCoreClock/1000);//1ms中断一次	滴答定时器
			NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);			 //设置中断优先级分组为2
			while(1)
			{
			
			}
		}	

	第二步:初始 化LCD,并用display显示测试LCD是否能用、记得添加  #include "stdio.h"  char text[20];
	第三步:添加delay文件,将stm32f10x_it.c原来全部复制粘贴,在主函数前添加  uint32_t TimeDisplay = 0; 
	第四步:看题目要求添加逐一添加驱动

*/


/*........使用LCD步骤............

	1.添加驱动 添加头文件  #include "lcd.h"	
	2.在主函数中添加
	STM3210B_LCD_Init(); 		 //LCD初始化设置
	LCD_Clear(Blue2);      		//液晶重置颜色
	LCD_SetTextColor(Black);   	//设置文本颜色
    LCD_SetBackColor(Blue2);    //设置背景颜色
	3.在display中显示:
		字符:	
				sprintf(text,"      No 1 ");
				LCD_DisplayStringLine(Line2,(uint8_t *)text);		    //第二行

	精确位置:	sprintf(text,"%3.0f",T);
				LCD_ShowString(170,80,200,24,24,(u8 *)text);
 
		ADC电压:
				sprintf(text,"   %s%.2f%s  ","   ADC:",t_temp,"V            ");
				LCD_DisplayStringLine(Line6,(uint8_t *)text);		   
		数字变量:
				sprintf(text,"    Level:%d     ",Level);
				LCD_DisplayStringLine(Line8,(uint8_t *)text);		   
		控制选中颜色:
				LCD_SetTextColor(Black);
 				sprintf(text,"   Parameter Setup ");
				LCD_DisplayStringLine(Line2,(uint8_t *)text);		    //第一行 	
	
				if(flag==0)LCD_SetTextColor(Black);
			    if(flag==1)LCD_SetTextColor(Red);
			    else LCD_SetTextColor(Black);
			    sprintf(text,"%s%d%s  ","  Threshold_1:",Threshold_1,"cm            ");
				LCD_DisplayStringLine(Line4,(uint8_t *)text);
		如果要使用汉字:
					添加#include "ziku.h",用过查找ASCII表
			文字类:在ziku.h里添加汉字的字模	LCD_ShowChinese(110,40,0,24,0);	//实
			字符类:	 LCD_ShowChar(200,80,99,24,0);
 			变量数字类:  LCD_ShowxNum(150,120,charge,2,24,0);
	
*/
/*........使用ADC步骤............

	1.添加驱动	添加头文件	#include "adc.h"
	2.	在主函数前添加 
		 float t_temp;  //adc结果暂存变量 
	3.在主函数中添加	Adc_Init();
	4.在在循环里添加		t_temp = Read_Adc();
	5.在display中添加  extern float t_temp;并使用·
	电压显示:
			sprintf(text,"   %s%.2f%s  ","   ADC:",t_temp,"V            ");
			LCD_DisplayStringLine(Line6,(uint8_t *)text);		   
	
	
*/
/*........使用RTC步骤............

	1.添加驱动  添加头文件#include "rtc.h"
	2.在主函数前添加
	 u32 THH,TMM,TSS;
	void Time_Display(u32 TimeVar);	
	2.在主函数里添加
			RTC_Configuration();
			NVIC_Configuration1();
	3.在while(1)中添加	 
		if(TimeDisplay == 1)
		 {			
			Time_Display(RTC_GetCounter());//获取计数器的值并显示
			TimeDisplay = 0;//清除标志位	
		 }
	4.在主函数外添加
	void Time_Display(u32 TimeVar)			
	{	
		THH = TimeVar / 3600;	 //时
	    TMM = (TimeVar % 3600) / 60;	//分
	    TSS = (TimeVar % 3600) % 60;//秒 		
	}
*/
/*........使用LED步骤............

	  	1.添加驱动  添加头文件#include "led.h"
		2.在主函数里添加  
			LED_Init();
			GPIO_SetBits(GPIOD,GPIO_Pin_2);	//锁存器输出高电平			  使led全灭
			GPIO_SetBits(GPIOC,GPIO_Pin_All);
			GPIO_ResetBits(GPIOD,GPIO_Pin_2);	//锁存器输出低电平	 
	   3.使用前后加
	   	 GPIO_SetBits(GPIOD,GPIO_Pin_2);	 //锁存器输出高电平
		 GPIO_SetBits(GPIOC,GPIO_Pin_All);

		 if(_1s == 10)LED1 = !LED1;

		 GPIO_ResetBits(GPIOD,GPIO_Pin_2);	

*/
/*........使用key步骤............

		1.添加驱动  添加头文件#include "key.h"
		2.在主函数里添加  
			KEY_Init();	
		3.在while(1)中添加Key_Scan();
*/

/*........使用timer步骤............	   //未完成
  一,定时器timer
	1.添加驱动  添加头文件#include "tim3.h.h"
	2.在 TIM_Config();              //50ms中断一次
	3.在stm32f10x_it.c中 void TIM3_IRQHandler(void) 设置时间中断
	
*/

/*........使用E2PROM步骤............

	1.添加驱动  添加头文件#include"i2c.h"#include"at24c02.h"
	2. 主函数里添加	i2c_init();
	   Threshold_1 = at24c02_read(1);
  	   Threshold_2 = at24c02_read(2);
	   Threshold_3 = at24c02_read(3);
	3.在需要保存的地方添加
		at24c02_write(1,Threshold_1);
		at24c02_write(2,Threshold_2);
		at24c02_write(3,Threshold_3);

*/

/*........使用USART2步骤............

		1.添加驱动  添加头文件#include "usart.h"
		2.在主函数里添加 usart_init();
		3.发送
			直接向串口发送 	 
					if(LED2_1>Level)printf("A:H%0.f+L%d+D\r\n",Height,Level);//液位下降
			在串口2的接收中断中写用extern int strcmp(const char *s1,const char *s2);		//将两个变量作比较
			  if(strcmp(USART_RXBUF,"C")==0)
					{  
					
					   printf("\r\n");
					   printf("C:H%0.f+L%d\r\n",Height,Level);
					   GPIO_SetBits(GPIOD,GPIO_Pin_2);
					   GPIO_SetBits(GPIOC,GPIO_Pin_All);
		               GPIO_ResetBits(GPIOC,GPIO_Pin_10);
		               GPIO_ResetBits(GPIOD,GPIO_Pin_2);	   	
			    	}
*/

/*****LCD,ADC,RTC,LED,KEY,TIMER,E2PROM******/

#include "stm32f10x.h"
#include "lcd.h"
#include "display.h"
#include "adc.h" 
#include "key.h"
#include"i2c.h"
#include "stdio.h"   				//使sprintf正常运行
#include"at24c02.h"
#include "usart.h"
#include "tim3.h"
#include "led.h"
uint32_t TimeDisplay = 0;  
extern float t_temp;  //adc结果暂存变量 
extern int mode, Level;
extern char _1s,_200ms;
extern float Height;
int LED2_1;
extern int Threshold_1,Threshold_2,Threshold_3; 
int main()
{
	STM3210B_LCD_Init(); 								 //LCD初始化设置
	LCD_Clear(Blue2);/*液晶重置颜色*/
	LCD_SetTextColor(Black);/*设置文本颜色*/
    LCD_SetBackColor(Blue2);/*设置背景颜色*/
	Adc_Init();
	KEY_Init();
	i2c_init();	  	
	TIM_Config();   
	usart_init();
	SysTick_Config(SystemCoreClock/1000);//1ms中断一次	滴答定时器

	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);			 //设置中断优先级分组为2
	Threshold_1 = at24c02_read(1);
	Threshold_2 = at24c02_read(2);
	Threshold_3 = at24c02_read(3);

	GPIO_SetBits(GPIOD,GPIO_Pin_2);	//锁存器输出高电平	
	GPIO_SetBits(GPIOC,GPIO_Pin_All);
	GPIO_ResetBits(GPIOD,GPIO_Pin_2);	//锁存器输出低电平	 

	while(1)
	{
		t_temp = Read_Adc();
		if(mode == 0)display();
		Key_Scan(); 
		

	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值