您的位置:首页 > 运维架构 > Linux

HI3531串口测试程序(arm) 分类: arm-linux-Ubuntu HI3531 2013-12-10 15:56 749人阅读 评论(3) 收藏

2013-12-10 15:56 357 查看
#include<stdio.h>

unsigned int UART0_ADDR = 0x20080000;

unsigned int retu=0;

int i=0;

void delay_x(unsigned short cycles)

{

unsigned short t;

t = cycles;

while ( --t != 0 );

}

int main()

{

///////////初始化部分////////////////////////////////////////////////////

retu = *(unsigned int *)(UART0_ADDR + 0X30);//uart_cr

*(unsigned int *)(UART0_ADDR + 0X30) = 0x300;

// retu = *(unsigned int *)(UART0_ADDR + 0X24);//ibrd

// retu = *(unsigned int *)(UART0_ADDR + 0X28);//fbrd

*(unsigned int *)(UART0_ADDR + 0X24) = 1;

*(unsigned int *)(UART0_ADDR + 0X28) = 40;

*(unsigned int *)(UART0_ADDR + 0X30) = 0x300;

*(unsigned int *)(UART0_ADDR + 0X2c) = 0x60;//UART_LCR_H

*(unsigned int *)(UART0_ADDR + 0X34) = 0x12; //UART_IFLS

*(unsigned int *)(UART0_ADDR + 0X38) = 0x0;//UART_IMSC

retu = *(unsigned int *)(UART0_ADDR + 0X30);//uart_cr

*(unsigned int *)(UART0_ADDR + 0X30) = retu | 0x01;//使能串口

//////////////////////////////////////////////////////////

while(1)

{

// retu = *(unsigned int *)(UART0_ADDR + 0X18);

// retu = retu&0x40;

if(((*(unsigned int *)(UART0_ADDR + 0X18))&0x40)==0x40)

{

retu = *(unsigned int *)(UART0_ADDR + 0X00);

retu = retu&0xff;

*(unsigned int *)(UART0_ADDR + 0X00) = retu;

}

retu = 0;

delay_x(0X7000);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐