數碼相框專案模組 二 UART

2021-05-25 22:09:35 字數 2822 閱讀 6292

如果要想在串列埠工具dwn上顯示列印資訊,使用c語言的標準庫是沒有效果的,必須利用開發板上的串列埠,經過cpu來進行輸出列印資訊,uart模組可以實現輸入和輸出的功能

(一)配置i /0 暫存器

要在原理圖上找到串列埠,這裡我們使用串列埠0 ( u12 ),需要在原理圖上找到接收資料訊號 xrxd0 和 傳送資料訊號 xtxd0 兩條訊號線,然後在核心板上找到對應的輸入輸出埠gph2和gph3,由此,找到相應的控制暫存器gphcon,設定為特定功能 rxd[0] 和 txd[0]

(二)配置特殊暫存器

由規格書可知我們需要配置的特殊暫存器有 ulcon、ucon、ufcon 和 ubrdiv 

ulcon0暫存器:8-bit data,no parity,one stop bit

ucon0暫存器: pclk,polling mode

ufcon0暫存器:non-fifo mode

umcon0暫存器:disable the modem mode

ubrdiv暫存器的設定:按照波特率為115200,pclk=50mhz,根據規格書上的公式計算可得數值為 27 -1

(三)輸入輸出原理,如下圖:

接收字元:當從鍵盤接受乙個字元時,通過urxh0暫存器進行返回,若緩衝區沒有字元,則需要一直進行等待

傳送字元:直到緩衝區為空時,才進行傳送字元,否則就一直進行等待

uart0.c **如下

code:

#include "2440addr.h"

#include "uart.h"

#include "string.h"

#include 

#include "stdio.h"

/* function  name  :   uart0_init

description     :   uart 0 init

input parameter :   none

return          :   none        

others          :   disable fifo function                                           

*/void uart0_init(void)   

/* function  name  :   uart0_putchar

description     :   output  a  char from uart 0 port 

input parameter :   the char value

return          :   none        

others          :   disable fifo function                                           

*/void uart0_putchar(unsigned char c)     /*transmit a char value*/

/* function  name  :   uart0_getchar

description     :   get  a  char from uart 0 port 

input parameter :   none 

return          :   the char        

others          :   disable fifo function                                           

*/unsigned char uart0_getchar(void)       /*receive a char value*/

/* function  name  :   uart0_puts

description     :   output  a  char string from uart 0 port 

input parameter :   the char string 

return          :   none        

others          :   disable fifo function                                           

*/void uart0_puts(char *p)  //輸出一串字元

}   

void uart_printf(char *fmt,...)      

uart0.h **

code:

#ifndef _uart_h

#define _uart_h

#define pclk         50000000    // init.c中的clock_init函式設定pclk為50mhz

#define uart_clk     pclk        //  uart0的時鐘源設為pclk

#define uart_baud_rate  115200      // 波特率

#define uart_brd        ((uart_clk  / (uart_baud_rate * 16)) - 1)

extern

void uart0_init(void);   

extern

void uart0_putchar(unsigned char c);   

extern unsigned char uart0_getchar(void);   

void uart0_puts(char s);   

void uart_printf(char *fmt,...) ;   

#endif

數碼相框 渲染模組

render模組包含三個部分 format,operation和render.c,其中format為檔案解析模組,operation為操作模組,render.c為渲染函式。format目錄 operation目錄 render.c picfmt manager.c zoom.c merge.c bm...

數碼相框 頁面模組

typedef struct pageaction t pageaction,pt pageaction typedef struct pagelayout t pagelayout,pt pagelayout static t layout g atmainpageiconslayout stat...

嵌入式之數碼相框專案

utf 8的格式是現在使用最廣泛的數字和字母的轉換方式。因為這種方式的容錯性是最好的。可執行程式表示那些不帶.c或者.o等的檔案。這些檔案是可以執行的。映像檔案 映象檔案是一種光碟檔案資訊的完整拷貝檔案。包括光碟所有資訊,所以需要專門的虛擬光碟機軟體,載入此種映象檔案,進行讀取,完全模擬了讀取光碟檔...