本期為大家推送迪文開(kāi)發(fā)者論壇獲獎(jiǎng)開(kāi)源案例——基于T5L芯片的多功能物聯(lián)網(wǎng)開(kāi)發(fā)套件。工程師充分運(yùn)用了T5L1芯片的豐富外設(shè)功能,集成了USB、音頻喇叭、PWM信號(hào)接口、RGB彩燈、WiFi模塊、直流電機(jī)等多種接口,為物聯(lián)網(wǎng)領(lǐng)域的學(xué)習(xí)者、測(cè)試者和開(kāi)發(fā)者提供了一個(gè)靈活、高效的物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái),極大滿足了用戶(hù)在硬件資源方面的多元化需求,助力廣大開(kāi)發(fā)者輕松開(kāi)啟物聯(lián)網(wǎng)探索之旅。
PCB板外設(shè)接口
UI素材展示
GUI工程設(shè)計(jì)
C51工程設(shè)計(jì)
(1)JPG圖片顯示在屏幕的核心代碼如下:
void sys_draw_jpg(u16 vp,u8 *jpg_data,u32 data_len){ u32 i; for(i=0;i { if((jpg_data==0xFF)&&(jpg_data[i+1]==0xD8)) break; } if(i==data_len) return; data_len = (data_len-i)/2+1; sys_write_vp(vp+2,jpg_data+i,data_len); data_len |= 0x5AA50000; sys_write_vp(vp,(u8*)&data_len,2);}
(2)RGB燈帶顯示相關(guān)的程序如下:
voidrgbled_send_zero(){ u8 i; RGBLED_SDA = 0; for(i=0;i<32;i++) { RGBLED_SCL = 0; sys_delay_about_us(200); RGBLED_SCL = 1; sys_delay_about_us(200); }}u8 rgbled_reverse_data(u8 dat){ dat = ((~dat) & 0xC0) >> 6; return dat;}void rgbled_send_data(u32 dat){ u8 i; for(i=0;i<32;i++) { if(dat&0x80000000) RGBLED_SDA = 1; else RGBLED_SDA = 0; dat <<= 1; RGBLED_SCL = 0; sys_delay_about_us(200); RGBLED_SCL = 1; sys_delay_about_us(200); } }//數(shù)據(jù)處理void rgbled_process(u8 r,u8 g,u8 b){ u32 dat = 0; dat |= (u32)0x03 << 30; dat |= (u32)rgbled_reverse_data(b) << 28; dat |= (u32)rgbled_reverse_data(g) << 26; dat |= (u32)rgbled_reverse_data(r) << 24; dat |= (u32)b << 16; dat |= (u32)g << 8; dat |= r; rgbled_send_data(dat);}void rgbled_show(u8 r,u8 g,u8 b){ P2MDOUT |= 0x0C; rgbled_send_zero(); rgbled_process(r, g, b); rgbled_process(r, g, b);}void rgbled_init(void){ rgbled_show(0,0,0);}
(3)iic協(xié)議驅(qū)動(dòng)代碼如下:
#include "iic.h"sbit IIC_SDA_PIN = P2^2;sbit IIC_SCL_PIN = P2^3;#define SDA_IN() P2MDOUT&=0xFB#define SDA_OUT() P2MDOUT|=0x04#define IIC_SCL IIC_SCL_PIN#define IIC_SDA IIC_SDA_PIN#define READ_SDA IIC_SDA_PIN#define delay_us sys_delay_about_usvoid IIC_Init(void){ P2MDOUT |= 0x0C; IIC_SDA = 1; IIC_SCL = 1; }void IIC_Start(void){ SDA_OUT(); IIC_SDA=1; IIC_SCL=1; delay_us(4); IIC_SDA=0; delay_us(4); IIC_SCL=0;} void IIC_Stop(void){ SDA_OUT(); IIC_SCL=0; IIC_SDA=0; delay_us(4); IIC_SCL=1; delay_us(4); IIC_SDA=1; }u8 IIC_Wait_Ack(void){ u8 ucErrTime=0; SDA_IN(); IIC_SDA=1;delay_us(1); IIC_SCL=1;delay_us(1); while(READ_SDA) { ucErrTime++; if(ucErrTime>250) { IIC_Stop(); return 1; } } IIC_SCL=0; return 0; }void IIC_Ack(void){ IIC_SCL=0; SDA_OUT(); IIC_SDA=0; delay_us(2); IIC_SCL=1; delay_us(2); IIC_SCL=0;}void IIC_NAck(void){ IIC_SCL=0; SDA_OUT(); IIC_SDA=1; delay_us(2); IIC_SCL=1; delay_us(2); IIC_SCL=0;} void IIC_Send_Byte(u8 txd){ u8 t; SDA_OUT(); IIC_SCL=0; for(t=0;t<8;t++) { IIC_SDA=(txd&0x80)>>7; txd<<=1; delay_us(2); IIC_SCL=1; delay_us(2); IIC_SCL=0; delay_us(2); } }u8 IIC_Read_Byte(u8 ack){ u8 i,receive=0; SDA_IN(); for(i=0;i<8;i++ ) { IIC_SCL=0; delay_us(2); IIC_SCL=1; receive<<=1; if(READ_SDA)receive++; delay_us(1); } if (!ack) IIC_NAck(); else IIC_Ack(); return receive;}
-
芯片
+關(guān)注
關(guān)注
450文章
49603瀏覽量
417045 -
PCB板
+關(guān)注
關(guān)注
27文章
1418瀏覽量
51214 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2894文章
43250瀏覽量
366252
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論