历史上的今天
今天是:2025年04月01日(星期二)
2020年04月01日 | S5PV210的Uart应用
2020-04-01 来源:eefocus
准备分析
S5PV210的NandFlash应用(一)出现很多bug,所以要先把Uart搞出来了。Uart一般是和clock相关联的,但是IROM中的代码已经提升了PCLK到66.5MHZ,这里就不进行CLOCK的设置了。
资源工具
同《 S5PV210的LED应用(一)》
着手写程序
为实现代码最简化,只是在LED程序的基础上进行添加,其它硬件如NandFlash,重定向等等都不涉及。函数设计如下:
(1) void uart_init (void) ,初始化Uart
(2) char getc (void),接收一个字符
(3) void putc (char c) ,发送一个字符
(4) puthex(volatile char a),发送一个16进制数,对调试NandFlash有帮助,可以输出寄存器的值。(参考:这里)
(5) void main (void),测试以上代码。
具体的实现:
// 初始化串口
void uart_init()
{
// 1 配置引脚用于RX/TX功能
GPA0CON = 0x22222222;
GPA1CON = 0x2222;
// 2 设置数据格式等
// 使能fifo
UFCON0 = 0x1;
// 无流控
UMCON0 = 0x0;
// 数据位:8, 无校验, 停止位: 1
ULCON0 = 0x3;
// 时钟:PCLK,禁止中断,使能UART发送、接收
UCON0 = 0x5;
// 3 设置波特率
UBRDIV0 = UART_UBRDIV_VAL;
UDIVSLOT0 = UART_UDIVSLOT_VAL;
}
// 接收一个字符
char getc(void)
{
// 如果RX FIFO空,等待
while (!(UTRSTAT0 & (1<<0)));
// 取数据
return URXH0;
}
// 发送一个字符
void putc(char c)
{
// 如果TX FIFO满,等待
while (!(UTRSTAT0 & (1<<2)));
// 写数据
UTXH0 = c;
}
/*
* 打印16进制数
* 例如:int a = 0x68; puthex(a);输出"68";
*/
int puthex(volatile char a)
{
volatile char cTmp;
//putchar(a);
//方法一printf
//printf("n%xn", a);
//方法二,计算
cTmp=a>>4;//右移4位,把高位放到低位
if(cTmp<10)//如果是小于10的数
{
cTmp+='0';//以0-9输出
}
else
{
cTmp+='A'-10; //大于等于10的就是ABCDEF了。
}
putc(cTmp);
cTmp=a&0x0f;
if(cTmp<10)
{
cTmp+='0';
}
else
{
cTmp+='A'-10;
}
putc(cTmp);
return 0;
}
void main() //LED 闪烁
{
char c = 0;
int a = 0x68;
GPJ2CON = 0x00001111; // 配置引脚
GPJ2DAT = 0; // LED on
delay(0x100000);
// 初始化串口
uart_init();
// 开发板发送字符'A'
putc('A');
// 开发板发送"68"
puthex(a);
while (1)
{
// 开发板接收字符
c = getc();
// 开发板发送字符c+1
putc(c+1);
}
}
下载运行
同《 S5PV210的LED应用(一)》
运行调试
测试OK:

遗留问题
1.无
史海拾趣
|
在电路设计中电流测量应用十分普遍,主要领域分为3大类:测量中,电表会用来进行电流的测量;保护中,电流往往与功率形成直接的关系,如果电流过大代表系统中有短路情况出现而需要保护,因此用到电流测量;控制中,如马达控制、电池充放电等都需要 ...… 查看全部问答> |
|
铝合金分几百个牌号,每个牌号都有特定加工性能,我们就简单地谈各位玩家常用的工艺吧 阳极氧化要达到镜面效果的要选用6061牌号的铝合金,6061是属于铝硅镁合金,特点是具有良好的阳极氧化性能和焊接,高强度的抗腐蚀性 ...… 查看全部问答> |
|
电工常用测量仪表有摇表、万用表和钳形电流表,这些仪表在测量时若不注意正确的使用方法或稍有疏忽,不是将表烧坏,就是使被测元件损坏,甚至还危及人身安全,因此,掌握常用电工测量仪表的正确使用方法是非常重要的。 1摇表 摇表又称兆欧表,其 ...… 查看全部问答> |
|
在学校时的学习主要方向是web方面的,java,.net之类,毕业后一年了,现在是在一个用c开发的银行交易系统项目中coding,从接触程序起我对c一直很感兴趣,想以后就做c程序员,现在把c学精点。但是,对c程序员的发展方向有些迷茫,感觉技术也还是很浅 ...… 查看全部问答> |
|
由430的结构图看出,地址总线MAB为16位的,寻址空间最大为64k,有些片子的内部Flash大于64k,高于这个地址的区间是如何访问的,基于什么原理?谢谢各位!… 查看全部问答> |




