标题:
stm32的汉字显示实验+温度+图形+倒计时按键
[打印本页]
作者:
joker_li
时间:
2017-12-8 18:22
标题:
stm32的汉字显示实验+温度+图形+倒计时按键
大家可以参考采纳
单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "key.h"
#include "usmart.h"
#include "malloc.h"
#include "MMC_SD.h"
#include "ff.h"
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"
#include "ds18b20.h"
#include "timer.h"
//ALIENTEK Mini STM32开发板范例代码30
int main(void)
{
// delay_init(); //延时函数初始化
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
// LED_Init(); //初始化与LED连接的硬件接口
// TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数到5000为500ms
u8 a=60;
short temperature;
u32 fontcnt;
u8 i,j;
u8 fontx[2];//gbk码
u8 key,t;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LCD_Init(); //初始化液晶
LED_Init(); //LED初始化
KEY_Init(); //按键初始化
usmart_dev.init(72); //usmart初始化
mem_init(); //初始化内存池
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载FLASH.
DS18B20_Init();
while(font_init()) //检查字库
{
UPD:
LCD_Clear(WHITE); //清屏
POINT_COLOR=RED; //设置字体为红色
LCD_ShowString(60,50,200,16,16,"mini STM32");
key=update_font(20,110,16);//更新字库
while(key)//更新失败
{
LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
delay_ms(200);
LCD_Fill(20,110,200+20,110+16,WHITE);
delay_ms(200);
}
LCD_ShowString(60,110,200,16,16,"Font Update Success!");
delay_ms(1500);
LCD_Clear(WHITE);//清屏
}
POINT_COLOR=BLUE;
Show_Str(60,50,200,16,"2017年5月4日",16,0);
while(DS18B20_Init()) //DS18B20初始化
{
LCD_ShowString(60,70,200,16,16,"DS18B20 Error");
delay_ms(200);
LCD_Fill(60,130,239,130+16,WHITE);
delay_ms(200);
}
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,90,200,16,16,"Temp: . C");
LCD_Fill(201,279,219,300,BLUE);
LCD_Draw_Circle(120,200,80);//画圆
LCD_Draw_Circle(210,290,15);//显示按键圆圈
LCD_DrawLine(120,200,120,130);//显示分针
LCD_DrawLine(120,200,130,150);//显示时针
LCD_DrawLine(120,266,115,274);
LCD_DrawLine(115,274,125,274);
LCD_DrawLine(120,266,125,274);//显示6的三角形
LCD_DrawLine(47,197,42,204);
LCD_DrawLine(42,204,52,204);
LCD_DrawLine(47,197,52,204);//显示9的三角形
LCD_DrawLine(120,126,115,135);
LCD_DrawLine(115,135,125,135);
LCD_DrawLine(125,135,120,126);//显示12的三角形
LCD_DrawLine(193,197,188,204);
LCD_DrawLine(188,204,198,204);
LCD_DrawLine(198,204,193,197); //显示3的三角形
LCD_ShowString(100,230,200,16,16,"00: ");
POINT_COLOR=RED;
LCD_DrawLine(120,200,100,123);//显示秒针
LCD_DrawRectangle(80,220,160,260);//画矩形
while(1)
{
if(t%10==0)//每100ms读取一次
{
temperature=DS18B20_Get_Temp();
if(temperature<0)
{
LCD_ShowChar(60+40,150,'-',16,0); //显示负号
temperature=-temperature; //转为正数
}
else
POINT_COLOR=BLUE;
LCD_ShowChar(60+40,90,' ',16,0); //去掉负号
LCD_ShowNum(60+40+8,90,temperature/10,2,16); //显示正数部分
LCD_ShowNum(60+40+32,90,temperature%10,1,16); //显示小数部分
}
delay_ms(10);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
汉字显示实验+温度+图形+倒计时按键.rar
(993.61 KB, 下载次数: 91)
2017-12-9 00:07 上传
点击文件名下载附件
stm32 显示图像的程序
下载积分: 黑币 -5
作者:
是你呀
时间:
2017-12-24 11:47
亲,你这个程序运行之后只显示了刚开始的两排,有解决办法嘛?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1