S3C2440 UART/串口(一)

本文详细介绍了S3C2440处理器串口配置的方法,包括配置寄存器实现引脚复用、设置波特率及数据格式等步骤。此外,还提供了发送和接收数据的具体代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个ESP8266的小项目

https://blog.youkuaiyun.com/shitou123xsx/article/details/90550098

串口:

作用:【1:打印调试信息 2:外接GPS,蓝牙等各种模块】

1:TTL/CMOS逻辑电平下5v对应逻辑‘1’,0v对应逻辑‘0’。在空闲时TX RX 保持高电平。

2:RS--232逻辑电平,通常情况下ARM芯片串口输出为TTL电平,需要通过电平转换芯片才能够将TTL电平转换成232电平。

 

串口发送需要满足一下几点:

发送,接收双方约定好1:波特率: 2:双方约定好数据格式【数据位,停止位,校验位,流控】

 

串口如何发送1Byte数据比如:‘A’

'A' 0X41 ,01000001

1:双方约定好波特率【比如都是 115200】

2:数据格式保持统一

3:原来数据线上是高电平ARM将数据线拉低并保持1BIT时间。

4:PC在低电平开始处进行计时。

5:ARM根据数据驱动TXD线上的电平变换依次发送出数据。

6:PC在数据位的中间读取引脚的状态

 

S3C2440串口学习总结:

 

学习嵌入式代码应该来源与手册,用手册和C语言基础来写出程序。

 

首先来初始化串口:根据上述知识想要正常的使用串口,需要配置引脚复用为串口,设置设备波特率,设置数据格式。

 

1:配置设备IO口为串口功能:

GPHCON配置寄存器:

通过配置GPHCON寄存器中的【7:6】【5:4】这四位可以将GPH2 GPH3设置成TXD0 和RXD0.

代码:

GPHCON &=~((3<<4)|(3<<6));//首先在保证其他位不变的情况下将4 5 6 7位清0

GPHCON |=~((2<<4)|(2<<6));//配置

串口在空闲状态时TXD0应该处于高电平,所以应该应该设置GPH2内部上拉。

代码:

GPHUP &=~((1<<2)|(1<<3));//使能内部上拉 详细可查看串口时序要求

 

2:设置波特率

 

代码:

/*

UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1

UART clock=50M

UBRDIVn = (int)( 50000000/ (115200 x 16) ) –1 UBRDIVn=26//存在误差这点算出来的值可以进行四舍五入

*/

UCON=0X00000005;/*PCLK,中断/查询模式*/

UBRDIV0=26;

3:设置数据格式

代码:

ULCON0=0X00000003;

通过配置这几个寄存器设备的串口就可以正常使用了。

 

4:串口发送一个字节数据

在串口发送一字节数据之前要确保UTX0寄存器中数据已经发送完成,通过检查UTRSTAT0寄存器中的第二位就可以知道数据是否发送完成。当没有发送完成时该位为1。通过代码while(!(UTRSTAT0 &(1<<2));便可以判断前一个数据是否发送完成。

代码:

int putchar(int c)

{

/*

UTRSTAT0 UART channel 0 Tx/Rx status register

1 = Transmitter (transmit buffer & shifter register) empty

*/

while(!(UTRSTAT0 &(1<<2));//判断前一个数据是否发送完成

/*UTXH0*/

UTXH0=(unsigned char)c;

}

4:串口接收一字节数据

代码:

int puts(const char *s)

{

while(*s!='\0')

{

putchar(*s);

s++;

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值