[分享] Mini2440串口通信

灞波儿奔   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

 

回复评论 (1)

帮顶帮顶帮顶帮顶
点赞  2020-1-8 08:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复