📄 ffuart_method.c
字号:
typedef unsigned long ulong;
#define FFUART_BASE 0x40100000
#define FFRBR (*((volatile ulong *)(FFUART_BASE+0x00)))
#define FFTHR (*((volatile ulong *)(FFUART_BASE+0x00)))
#define FFIER (*((volatile ulong *)(FFUART_BASE+0x04)))
#define FFIIR (*((volatile ulong *)(FFUART_BASE+0x08)))
#define FFFCR (*((volatile ulong *)(FFUART_BASE+0x08)))
#define FFLCR (*((volatile ulong *)(FFUART_BASE+0x0C)))
#define FFMCR (*((volatile ulong *)(FFUART_BASE+0x10)))
#define FFLSR (*((volatile ulong *)(FFUART_BASE+0x14)))
#define FFMSR (*((volatile ulong *)(FFUART_BASE+0x18)))
#define FFSPR (*((volatile ulong *)(FFUART_BASE+0x1C)))
#define FFISR (*((volatile ulong *)(FFUART_BASE+0x20)))
#define FFDLL (*((volatile ulong *)(FFUART_BASE+0x00)))
#define FFDLH (*((volatile ulong *)(FFUART_BASE+0x04)))
#define GPDR1 (*((volatile ulong *)(0x40E00010)))
#define GAFR1_L (*((volatile ulong *)(0x40E0005C)))
void SerialInit(void){
GPDR1 = 0x80;
GAFR1_L = 0x8010;
FFLCR = 0x00000003;
FFFCR = 0x00000007;
FFIER = 0x00000040;
FFMCR = 0x08;
////
FFLCR |= 0x00000080;
FFDLL = 0x8;
FFLCR &= 0xFFFFFF7F;
while(! FFLSR & 0x00000040 );
return;
}
void SerialOutputByte(const char c){
while ((FFLSR & 0x00000020) == 0 );
FFTHR = ((ulong)c & 0xFF);
if (c=='\n') SerialOutputByte('\r');
}
void SerialOutputString(char * str)
{
int i=0;
while(*(str+i)!='\0')
{
SerialOutputByte(*(str+i));
i++;
}
}
int SerialInputByte(char *c){
if((FFLSR & 0x00000001)==0){
return 0;
} else {
*c = FFRBR;
return 1;
}
}
long int zhishu(int di, int mi)
{
int i=0;
long int result=1;
if (mi==0)
{
return result;
}
else
{
for(i=0; i<mi; i++)
result *= di;
}
return result;
}
void print_num(int value)
{
int i=0, value_temp=value;
char lenth=0;
long int module=0;
char single_num=0;
while(value_temp)
{
lenth++;
value_temp /= 10;
}
value_temp = value;
for(i=0; i<lenth; i++)
{
module = zhishu(10, lenth-i-1);
single_num = value_temp / module;
single_num += 0x30;
SerialOutputByte(single_num);
value_temp %= module;
}
}
void print_string(char * str1)
{
SerialOutputString(str1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -