標(biāo)題:
stm32的漢字顯示實(shí)驗(yàn)+溫度+圖形+倒計(jì)時(shí)按鍵
[打印本頁(yè)]
作者:
joker_li
時(shí)間:
2017-12-8 18:22
標(biāo)題:
stm32的漢字顯示實(shí)驗(yàn)+溫度+圖形+倒計(jì)時(shí)按鍵
大家可以參考采納
單片機(jī)源程序如下:
#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開(kāi)發(fā)板范例代碼30
int main(void)
{
// delay_init(); //延時(shí)函數(shù)初始化
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
// LED_Init(); //初始化與LED連接的硬件接口
// TIM3_Int_Init(4999,7199);//10Khz的計(jì)數(shù)頻率,計(jì)數(shù)到5000為500ms
u8 a=60;
short temperature;
u32 fontcnt;
u8 i,j;
u8 fontx[2];//gbk碼
u8 key,t;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
delay_init(); //延時(shí)函數(shù)初始化
uart_init(9600); //串口初始化為9600
LCD_Init(); //初始化液晶
LED_Init(); //LED初始化
KEY_Init(); //按鍵初始化
usmart_dev.init(72); //usmart初始化
mem_init(); //初始化內(nèi)存池
exfuns_init(); //為fatfs相關(guān)變量申請(qǐng)內(nèi)存
f_mount(fs[0],"0:",1); //掛載SD卡
f_mount(fs[1],"1:",1); //掛載FLASH.
DS18B20_Init();
while(font_init()) //檢查字庫(kù)
{
UPD:
LCD_Clear(WHITE); //清屏
POINT_COLOR=RED; //設(shè)置字體為紅色
LCD_ShowString(60,50,200,16,16,"mini STM32");
key=update_font(20,110,16);//更新字庫(kù)
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;//設(shè)置字體為藍(lán)色
LCD_ShowString(60,90,200,16,16,"Temp: . C");
LCD_Fill(201,279,219,300,BLUE);
LCD_Draw_Circle(120,200,80);//畫(huà)圓
LCD_Draw_Circle(210,290,15);//顯示按鍵圓圈
LCD_DrawLine(120,200,120,130);//顯示分針
LCD_DrawLine(120,200,130,150);//顯示時(shí)針
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);//畫(huà)矩形
while(1)
{
if(t%10==0)//每100ms讀取一次
{
temperature=DS18B20_Get_Temp();
if(temperature<0)
{
LCD_ShowChar(60+40,150,'-',16,0); //顯示負(fù)號(hào)
temperature=-temperature; //轉(zhuǎn)為正數(shù)
}
else
POINT_COLOR=BLUE;
LCD_ShowChar(60+40,90,' ',16,0); //去掉負(fù)號(hào)
LCD_ShowNum(60+40+8,90,temperature/10,2,16); //顯示正數(shù)部分
LCD_ShowNum(60+40+32,90,temperature%10,1,16); //顯示小數(shù)部分
}
delay_ms(10);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
漢字顯示實(shí)驗(yàn)+溫度+圖形+倒計(jì)時(shí)按鍵.rar
(993.61 KB, 下載次數(shù): 91)
2017-12-9 00:07 上傳
點(diǎn)擊文件名下載附件
stm32 顯示圖像的程序
下載積分: 黑幣 -5
作者:
是你呀
時(shí)間:
2017-12-24 11:47
親,你這個(gè)程序運(yùn)行之后只顯示了剛開(kāi)始的兩排,有解決辦法嘛?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1