📄 gprs.c
字号:
#include"../ucos-ii/includes.h"
#include "string.h"
#define RdURXH2() (*(volatile unsigned char *)0x50008024)
#define WrUTXH2(ch) (*(volatile unsigned char *)0x50008020)=(unsigned char)(ch)
#define RdUTRSTAT2() (*(volatile unsigned char *)0x50008010)
#define OSULCON2 (*(volatile unsigned char *)0x50008000) //line control register
#define OSUCON2 (*(volatile unsigned char *)0x50008004) //control register
#define OSUFCON2 (*(volatile unsigned char *)0x50008008) //FIFIO mode
#define OSUMCON2 (*(volatile unsigned char *)0x5000800c) // 流量 control
#define OSUBRDIV2 (*(volatile unsigned int *)0x50008028) //baud rate
#define GPHCON (*(volatile unsigned int *)0x56000070)
#define GPHUP (*(volatile unsigned int *)0x56000078)
//extern void OSInitUart();
//int InitUart();
//void irq_RevUart2(int vector, int ndev);
void irq_RevUart2(int vector, int ndev) //serial 2 中断处理函数
{
int flag;
U8 c;
flag = RdUTRSTAT2();
while (flag&0x1) //receive buffer register
{
c=RdURXH2();// read the char from Uart2;
flag = RdUTRSTAT2();
//WrUTXH0(c);
draw_charline(c,0xf800);
}
}
int InitUart(void) //
{
OSULCON2 = 0x00000003; // Normal mode operation;No parity;one stop bit;8-bits;
OSUCON2 = 0x00000085; // interrupt request or polling mode;
// Rx Time Out Enable;Rx Error Status Interrupt disable;Normal transmit;
OSUFCON2 = 0x00000001; // FIFO Enble;transmit trigger level:8-byte;receive trigger level:4-byte;
OSUMCON2 = 0x00000000; // 'H'level;
OSUBRDIV2= 0x00000149; // Baud rate division value:26;
/***************************************************************************/
//GPHUP = GPHUP&0xffffff3f;
GPHUP = 0xffffff3f; //使能GPH6和GPH7 对应位为0
GPHCON = 0xaaa; //设置GPH6和GPH7的功能选择
SetISR_Interrupt(IRQ_RXD2, (Interrupt_func_t)irq_RevUart2,(void *) 2); //开启串口2接收中断
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -