日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]在上個(gè)例子中,已經(jīng)在ASF添加了ILI93xx模塊,并做好了相關(guān)的聲明。這次就做好SMC的配置,然后使用ASF提供的API在屏幕上打印出”Hello World!”字樣。一、 電路圖開(kāi)發(fā)板的LCD連接器的接線如圖所示。這些連線均按照SMC

在上個(gè)例子中,已經(jīng)在ASF添加了ILI93xx模塊,并做好了相關(guān)的聲明。這次就做好SMC的配置,然后使用ASF提供的API在屏幕上打印出”Hello World!”字樣。

一、 電路圖

開(kāi)發(fā)板的LCD連接器的接線如圖所示。這些連線均按照SMC相應(yīng)引腳的功能進(jìn)行了連接,這樣的意圖很明顯就是要讓SMC來(lái)和LCD進(jìn)行交互。

有兩個(gè)引腳需要注意:

PD18引腳的外設(shè)A是NCS1,即讓LCD連接至SMC的片選設(shè)備1中。

RS線表示“寄存器選擇”,根據(jù)該引腳的不同電平,會(huì)選擇訪問(wèn)不同的寄存器。而PC19引腳的外設(shè)A是地址線A1,這樣連接的影響在后面會(huì)說(shuō)明。

二、 SMC與LCD控制器的交互

在與一些存儲(chǔ)設(shè)備進(jìn)行交互時(shí),會(huì)有一個(gè)比較復(fù)雜的時(shí)序。比如寫(xiě)入該LCD控制器的寄存器時(shí):

而且,引腳間電平改變的時(shí)間差也是有一定的規(guī)定的。

若使用SMC的話,做好相應(yīng)的配置后,就會(huì)自動(dòng)地完成這些時(shí)序的控制。并且,芯片會(huì)對(duì)一段地址進(jìn)行映射,當(dāng)訪問(wèn)相應(yīng)區(qū)間的地址時(shí),就會(huì)交由SMC來(lái)完成實(shí)際的訪問(wèn)工作:

而LCD控制器為SMC的片選設(shè)備1,所以在訪問(wèn)地址在區(qū)間[0x6100 0000, 0x61FF FFFF]時(shí),會(huì)實(shí)際訪問(wèn)到LCD控制器。而RS接的是數(shù)據(jù)線A1,所以根據(jù)訪問(wèn)地址的第1位(從0數(shù)起)的不同,會(huì)影響RS引腳電平的高低。如在訪問(wèn)地址0x6100 0000時(shí)RS為低電平,而訪問(wèn)0x6100 0002時(shí)其為高電平。

三、 SMC的時(shí)序設(shè)置

可以在LCD控制器的芯片手冊(cè)上找到相應(yīng)的時(shí)序:

MCK為96 MHz時(shí),設(shè)置如下:

1234567891011121314151617181920212223#define ILI93XX_LCD_CS 1#define SMC_CS SMC->SMC_CS_NUMBER[ILI93XX_LCD_CS]/* 如果使用ASF的PMC模塊,調(diào)用這個(gè)即可使能外設(shè)的時(shí)鐘*/pmc_enable_periph_clk(ID_SMC);SMC_CS.SMC_SETUP =SMC_SETUP_NWE_SETUP(1)| SMC_SETUP_NCS_WR_SETUP(1)| SMC_SETUP_NRD_SETUP(1)| SMC_SETUP_NCS_RD_SETUP(1);SMC_CS.SMC_PULSE =SMC_PULSE_NWE_PULSE(5)| SMC_PULSE_NCS_WR_PULSE(5)| SMC_PULSE_NRD_PULSE(15)| SMC_PULSE_NCS_RD_PULSE(15);SMC_CS.SMC_CYCLE =SMC_CYCLE_NWE_CYCLE(10)| SMC_CYCLE_NRD_CYCLE(300);/* 由NRD或NWE信號(hào)控制讀寫(xiě) */SMC_CS.SMC_MODE =SMC_MODE_READ_MODE| SMC_MODE_WRITE_MODE;

這個(gè)設(shè)置不用太嚴(yán)格,如ASF示例代碼中的設(shè)置就和這有點(diǎn)差距,但是都能夠成功運(yùn)行。另外,ASF中的示例代碼也是很好的學(xué)習(xí)材料。在Atmel Studio的Start Page中可以打開(kāi)示例項(xiàng)目:

四、 LCD模塊的使用

在conf_board.h中,可以看到有兩個(gè)配置項(xiàng)。一般情況下,這兩個(gè)配置已經(jīng)在開(kāi)發(fā)板支持模塊中做好定義了。但是,看完上一小節(jié)的話,也應(yīng)該知道它做出如此配置的原因。

由于這個(gè)LCD控制器的使用略為復(fù)雜(它的芯片手冊(cè)有100多頁(yè)),而ASF也實(shí)現(xiàn)了相關(guān)的模塊,所以這次就繼續(xù)使用ASF了。

ILI93xx中,實(shí)現(xiàn)了許多控制與繪圖模塊,也包含了一個(gè)英文字庫(kù),可以很方便的進(jìn)行基本圖形和英文的繪制。

LCD的初時(shí)化。

12345678910structili93xx_opt_t lcd_init_opt;lcd_init_opt.ul_width = ILI93XX_LCD_WIDTH;lcd_init_opt.ul_height = ILI93XX_LCD_HEIGHT;lcd_init_opt.foreground_color = COLOR_BLACK;lcd_init_opt.background_color = COLOR_WHITE;/* 初始化 LCD */ili93xx_init(&lcd_init_opt);/* 啟動(dòng)LCD */ili93xx_display_on();

將屏幕填充為天藍(lán)色。

1234/* 像素格式為aRGB-888 */constuint32_t sky_blue_rgb = 0x87CEEB;ili93xx_set_foreground_color(sky_blue_rgb);ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT);

繪制文字。

123/* 繪制文字 */ili93xx_set_foreground_color(COLOR_BLACK);ili93xx_draw_string(50, 150, (uint8_t *)"Hello World!");

還有許多其他的API,比如控制顯示方向等等,可以查看API文檔或者相應(yīng)的頭文件。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉