摩尔芯闻 > 行业新闻 > 半导体 > s3c6410 uart 裸机 轮询 非fifo

s3c6410 uart 裸机 轮询 非fifo

eefocus ·2020-03-09 00:00·电子工程世界
阅读:1420

/* uart 非中断模式R,轮询,不用fifo

*/

#include

#include "uart.h"

#include "gpio.h"

#include "sysc.h"

#define UART0 ( ( volatile UART_REGS * ) (UART_BASE))

u32 Inp32(u32 xx)

{

return  xx;

}

void GpioInit()

{

// 设置gpio ,使用uart0

u32 TEMP;

TEMP = GPIO->rGPIOACON;

TEMP &= ~(0XFF);

TEMP |= 0X22;

GPIO->rGPIOACON = TEMP;

}

// SEND 8byte,1 stop bit, no parity

void UartInit()

{

u32 TEMP;

TEMP = Inp32(UART0->rULCON);

TEMP |= 0X03;

UART0->rULCON=TEMP;

// SET RT MODE ,polling mode

TEMP = Inp32(UART0->rUCON);

TEMP &=~(0xf);

TEMP |= 0X5;

UART0->rUCON=  TEMP;

}

char Getchar()

{

u8 TEMP;

while(!(UART0->rUTRSTAT &0X1));

TEMP = UART0->rURXH;

return TEMP;

}

void Sendchar(char x)

{

while(!(UART0->rUTRSTAT & 0X4));

UART0->rUTXH = x;

}

void BaudInit(u32 Baudrate)

{

//设置波特率  ,公式给出,参照datasheet

u32 TEMP,temp;

SYSC_GetClkInform();

TEMP = (g_PCLK /(Baudrate*16))-1;

temp = TEMP;

TEMP = (int)TEMP;

UART0->rUBRDIV = TEMP;

temp -= TEMP;

temp = (int)(temp*16);

switch(temp){

case 0: TEMP = 0X0000; break;

case 1: TEMP = 0X0080; break;

case 2: TEMP = 0X0808; break;

case 3: TEMP = 0X0888; break;

case 4: TEMP = 0X2222; break;

case 5: TEMP = 0X4924; break;

case 6: TEMP = 0X4a52; break;

case 7: TEMP = 0X54aa; break;

case 8: TEMP = 0X5555; break;

case 9: TEMP = 0Xd555; break;

case 10: TEMP = 0Xd5d5; break;

case 11: TEMP = 0Xddd5; break;

case 12: TEMP = 0Xdddd; break;

case 13: TEMP = 0Xdfdd; break;

case 14: TEMP = 0Xdfdf; break;

case 15: TEMP = 0Xffdf; break;

}

UART0->rUDIVSLOT = TEMP;

}

int main()

{

u8 ch;

UartInit();

BaudInit(9600);

while(1)

{

Sendchar('x');

ch= Getchar();

if(ch == 'x')

Sendchar('y');

}

}

可以参照datasheet,要大胆尝试,试一试就出来了


关键字: s3c6410 uart 裸机 轮询 非fifo 编辑:什么鱼 引用地址: http://news.eeworld.com.cn/mcu/ic490845.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
分享到:
微信 新浪微博 QQ空间 LinkedIn

上一篇:疫情影响,敦南2月营收月减20%;前2月年减47%

下一篇:传感器发展市场需求 传感器促进现代工业自动化

打开摩尔直播,更多新闻内容
半导体大咖直播分享高清观看
立即下载