S5PV210的Uart应用

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

准备分析

         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%x\n", 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.无


嵌入式S5PV210基础知识总结 2022年,210开发板有更新,请查看最新的数据手册。 阅读详情

相关推荐

ARM裸机编程系列---UART

串口设置之输入输出字符S5PV210 UART相关说明 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来传输串行数据。发送数据时,CPU将并行数据写入UARTUART按照一定的格式在一根电线上串行发出;接收数据 时,UART检测另一根电线的信号,将串行收集在缓冲区中,CPU即可读取UART获得这些

shane_zhou的专栏 2596

s5pv210开发板学习笔记(1)

从本文中,你可以了解到s5pv210开发板的启动模式,

qq_57212368的博客 615

[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)

建议参考文档:S5PV210-iROM-ApplicationNote-Preliminary-20091126 S5PV210_UM_REV1.1项目介绍参考 [project X] tiny210 操作说明===================================================================零、说明本文主要以友善之臂的tiny210板子作说明,

ooonebook的博客 1万+

S5PV210 | 裸机汇编LED流水灯实验

S5PV210 | 裸机汇编LED流水灯实验

I_feige的博客 2806

S5PV210 启动过程

第一步,CPU加载 Soc 内置的Irom内的代码(BL0),BL0 内的代码是,芯片出厂时,就芯片原厂固化好的代码,无法更改。注意: Irom(internal ROM SOC内置ROM),ROM是 只读存储器,一旦写入代码就固定下来。BL0 做一些 SoC相关初始化(关看门狗,设置Soc时钟等 其他初始化),然后,根据启动方式选择,跳到对应的存储设备地址,读取uboot的第一部分启动代码Bl1(16K)到Iram,校验读取数据时是否出错。然后,cpu跳到Iram中读取指令,执行BL1相关指令代码。

xueximodian的博客 442

ARM S5PV210 串行通信接口详解

一、串行通信接口详解 1 0. 串口的名称 S5PV210 的数据手册中串口控制器在 section8.1 串口的官方名称叫:universal asynchronous reciver and transmitter,通用异步收发器 英文缩写是uart,中文简称串口。 1. S5PV210 的串口控制器工作原理框图 整个串口控制器包含 transmitter 和 receiver 两部分,两部分功能彼此独立,transmitter 负责210 向外部发送信息,receiver 负责从外部接收信

weixin_42109053的博客 674

S5PV210学习笔记——(4) 串口

UART:异步、串行、查分;USART:同步 电平信号: RS232:-3~-15v为1,+3~+15为0;抗干扰距离远 TTL:+5v为1,0v为0,距离近不抗干扰,多用于电路内部或15m以内 串口中有个Transmit Buffer 寄存器,这个一会儿和FIFO一起说;还有个波特率发生器,它由时钟源为基础而产生。流控是有一根流控线,在发送机、接收机二者之间相连,每完成一个位的发送或者接收,就控制流控线改变,从而告知对方接受完成可以接受下一位数据了,一般在二者的速率不一...

m0_57198657的博客 2462

定时器

第7章 定时器 1、定时器或计数器的逻辑电路本质是一样的,都是通过当前寄存器中的值加1或减1实现。 2、定时器与计数器的区别在于:在应用中,定时器是对内部周期性信号进行计数,从而获得一段间隔的时间;而计数器一般是对外部事件产生的信号进行计数。  3、S5PV210提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持Pulse WidthModulat

Hello World 1485

ARM S5PV210 串行通信编程实战

一、串行通信编程实战1 1、整个程序流程分析 (1) 整个串口通信相关程序包含 2 部分:uart_init 负责初始化串口,uart_putc 负责发送一个字节。 2、串口控制器初始化关键步骤 (1) 初始化串口的 Tx 和 Rx 引脚所对应的GPIO(查原理图可知 Rx 和 Rx 分别对应GPA0_1和GPA0_0) 可以看到,S5PV210 上面一共有 4 个 UART 外设。 可以看到,UART0 外设的RXD/TXD 对应的引脚名称如下。 因此,在我们的核心板原理图上可以找到,UART0

weixin_42109053的博客 1323

《嵌入式面试》_1面京东科技-金刚项目组前准备_20260323

本文详细介绍了嵌入式硬件处理器平台操作系统移植、开发与调试的核心技术要点。重点内容包括:U-Boot两阶段启动流程(BL1硬件初始化、BL2功能加载)、Linux内核移植与启动参数优化、根文件系统定制化构建、设备驱动移植(DM9000网卡、串口、SPI、CAN总线等)。文章通过具体案例解析了常见问题的解决方法,如串口无输出故障定位、地址映射配置、动态链接库依赖处理等。同时总结了嵌入式系统开发中的关键技术选型原则和调试技巧,为相关岗位面试提供了全面的技术参考。

Qq19122427的博客 610

php中sql语句字符串截取字符串,sql语句的截取字符串下标是从1开始

S5PV210&lowbar;串行通信1.universal asynchronous reciver and transmitter 通用异步收发器 2.transmitter:由发送缓冲区和发送移位器构成.发送信息时,首先将信息编码( ...iOS 画图讲解5.画图 (1)画线 //绘图代码写在drawRect里,view加载完成,需要显示的时候调用 //1.获取图形上下文2.创建路...

weixin_39617685的博客 177

S5PV210】 | GPIO编程

【`S5PV210`】 | `GPIO`编程

I_feige的博客 1572

S5PV210 Uart Driver

Linux Kernel Uart Driver Development 相关情况交代如下: 1、需要阅读文档:linux/Documentation/serial/...    ,另外非常需要阅读的文档就是S5PV210 user manual。 2、参考的uart driver文件:s3c2440.c,s5pv210.c 3、底层相关源码:serial_core.h,serial.h

Ge Zhenglai 2024

三星S5PV210学习笔记(1)初识S5PV210

三星S5PV210学习笔记

djbpotter的博客 5636

S5PV210 串口

UART波特率的计算

奋斗吧,少年! 1800

s5pv210时钟系统详解

S5PV210时钟系统1、什么是时钟系统?时钟系统的作用? 时钟系统指的由固有频率来控制的系统。作用:有了一定的频率,工作才能有序,有节奏的进行着。 2、S5PV210的时钟系统是怎么样的? S5PV210:外部晶振+内部时钟发生器+内部PLL产生高频时钟+分频器 3、S5PV210时钟系统的工作流程? S5PV210:通过外部晶振产生一个低频时钟(如果外部晶振是

Just do it 4800

Linux平台S5PV210按键驱动全注释详解

本文还有配套的精品资源,点击获取 简介:在Linux操作系统中,驱动程序是连接硬件和内核的桥梁,特别是对于ARM架构的S5PV210处理器,编写高效的按键驱动对于提高用户交互体验和系统响应至关重要。本文将详细探讨Linux按键驱动的基础知识、结构设计和实现过程,以及如何在S5PV210平台上进行应用和调试。文章通过提供全注释的S5PV210按键驱动代码、应用程序和Makef...

weixin_31591833的博客 1517
上一篇: S5PV210的NandFlash应用(一)
下一篇: S5PV210的NandFlash应用(二)
袁保康
博客等级 码龄16年 1406粉丝 645原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值