社区导航

 

搜索
查看: 358|回复: 1

[分享] Mini2440串口通信

[复制链接]

1444

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-1-7 20:13 | 显示全部楼层 |阅读模式

一、串口编写总框图
Mini2440串口通信(UART0)

image.png

二、分步介绍
#define GPHCON     (*(volatile unsigned long *)0x56000070)
#define ULCON0     (*(volatile unsigned long *)0x50000000)
#define UCON0       (*(volatile unsigned long *)0x50000004)
#define UBRDIV0    (*(volatile unsigned long *)0x50000028)
#define UTRSTAT0  (*(volatile unsigned long *)0x50000010)
#define UTXH0       (*(volatile unsigned long *)0x50000020)
#define URXH0       (*(volatile unsigned long *)0x50000024)

#define PCLK             50000000
#define BAUDRATE    115200

1、初始化

①、配置引脚功能

GPHCON &= (~(0b11<<4))|(~(0b11<<6));//端口清零
GPHCON |= (0b10<<4)|(0b10<<6);//设置功能 image.png

②、设置数据格式

ULCON0 = (0b11<<0) | (0b0<<2) | (0b000<<3);

设置为 No parity;One stop bit per frame;8-bits

image.png

③、设置工作模式

UCON0 = (0b01<<0) | (0b01<<2);

发送和接受都设置为Interrupt request or polling mode

image.png

④、设置波特率

UBRDIV0 = (int)(PCLK/(BAUDRATE*16)) - 1;

本实验中UART0使用的是PCLK

image.png

2、发送数据

void putc(unsigned char ch)
{
    while( !(UTRSTAT0 & (1<<2)));
    UTXH0 = ch;
}

只使用低八位

image.png

3、接收数据

unsigned char getc()
{
    while( !(UTRSTAT0 & (1<<0)));
    return URXH0;
}

只使用低八位

image.png

 



回复

使用道具 举报

44

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-1-8 08:22 | 显示全部楼层
帮顶帮顶帮顶帮顶


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-1-30 04:47 , Processed in 0.111009 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表