这里给大家看一下我写的S3C2451的UART多接口初始化程序
只要输入想要配置的串口号,波特率,比特位宽度以及停止位,自动配置串口波特率
以及发送接受字符、发送字符串、串口中断等函数
如果有什么不对的地方希望赐教!
/*UART*/
#define ULCON0 (*(volatile unsigned long *)0x50000000)
#define ULCON1 (*(volatile unsigned long *)0x50004000)
#define ULCON2 (*(volatile unsigned long *)0x50008000)
#define ULCON3 (*(volatile unsigned long *)0x5000c000)
#define UCON0 (*(volatile unsigned long *)0x50000004)
#define UCON1 (*(volatile unsigned long *)0x50004004)
#define UCON2 (*(volatile unsigned long *)0x50008004)
#define UCON3 (*(volatile unsigned long *)0x5000c004)
#define UFCON0 (*(volatile unsigned long *)0x50000008)
#define UFCON1 (*(volatile unsigned long *)0x50004008)
#define UFCON2 (*(volatile unsigned long *)0x50008008)
#define UFCON3 (*(volatile unsigned long *)0x5000c008)
#define UMCON0 (*(volatile unsigned long *)0x5000000c)
#define UMCON1 (*(volatile unsigned long *)0x5000400c)
#define UMCON2 (*(volatile unsigned long *)0x5000800c)
#define UTRSTAT0 (*(volatile unsigned long *)0x50000010)
#define UTRSTAT1 (*(volatile unsigned long *)0x50004010)
#define UTRSTAT2 (*(volatile unsigned long *)0x50008010)
#define UTRSTAT3 (*(volatile unsigned long *)0x5000c010)
#define UERSTAT0 (*(volatile unsigned long *)0x50000014)
#define UERSTAT1 (*(volatile unsigned long *)0x50004014)
#define UERSTAT2 (*(volatile unsigned long *)0x50008014)
#define UERSTAT3 (*(volatile unsigned long *)0x5000c014)
#define UFSTAT0 (*(volatile unsigned long *)0x50000018)
#define UFSTAT1 (*(volatile unsigned long *)0x50004018)
#define UFSTAT2 (*(volatile unsigned long *)0x50008018)
#define UFSTAT3 (*(volatile unsigned long *)0x5000c018)
#define UMSTAT0 (*(volatile unsigned long *)0x5000001c)
#define UMSTAT1 (*(volatile unsigned long *)0x5000401c)
#define UMSTAT2 (*(volatile unsigned long *)0x5000801c)
#define UTXH0 (*(volatile unsigned long *)0x50000020)
#define UTXH1 (*(volatile unsigned long *)0x50004020)
#define UTXH2 (*(volatile unsigned long *)0x50008020)
#define UTXH3 (*(volatile unsigned long *)0x5000c020)
#define URXH0 (*(volatile unsigned long *)0x50000024)
#define URXH1 (*(volatile unsigned long *)0x50004024)
#define URXH2 (*(volatile unsigned long *)0x50008024)
#define URXH3 (*(volatile unsigned long *)0x5000c024)
#define UBRDIV0 (*(volatile unsigned long *)0x50000028)
#define UBRDIV1 (*(volatile unsigned long *)0x50004028)
#define UBRDIV2 (*(volatile unsigned long *)0x50008028)
#define UBRDIV3 (*(volatile unsigned long *)0x5000c028)
#define UDIVSLOT0 (*(volatile unsigned long *)0x5000002c)
#define UDIVSLOT1 (*(volatile unsigned long *)0x5000402c)
#define UDIVSLOT2 (*(volatile unsigned long *)0x5000802c)
#define UDIVSLOT3 (*(volatile unsigned long *)0x5000c02c)
/* 枚举串口号 */
typedef enum
{
UART0 = 0,
UART1,
UART2,
UART3
}UAR

本文介绍了如何进行S3C2451微处理器的UART多接口初始化,包括设置串口号、波特率、比特位宽度和停止位。还提供了自动配置波特率以及串口的发送、接收、中断处理等功能的实现代码。欢迎指正讨论。
最低0.47元/天 解锁文章
650

被折叠的 条评论
为什么被折叠?



