讲师博文
基于fs4412单板的串口裸板程序编写 来源 : 未知     2018-09-28

 首先根据原理图查看串口连接,如下:

根据BUF_XuTXD2/BUF_XuRXD2查看连接主芯片的位置,如下:

查找数据手册将GPA1_0/GPA1_1两个引脚配置为uart功能,如下图所示:

然后通过数据手册中uart章所描述公式,

 

根据公式描述,其中

SCLK为100M 

UBRp2 = 100M/115200/16 -1 = 53

UFRACVAL2 = 0.25 * 16 = 4

配置以下寄存器值,进行串口的初始化。

void InitUart()

{

//set gpio1_0 is uart rx, gpio1_1 tx

GPA1CON = GPA1CON &~ (0xFF) | (0x22);

//  normal mode | no parity | one stop bit  | 8bits 

ULCON2  = ULCON2 | (0 << 6)  | (0 << 3) | (0 << 2)| 0x3;

// [3:2] transmit mode is poll(01)  [1:0] receive mode is poll(01)

UCON2 = UCON2 &~ (0xF) | ( 0x5 );

/*

100M / 115200 / 16 - 1 = 53.25

set UBRp2 53

set UFRACVAL2 0.25 * 16

*/

UBRp2 = 53;

UFRACVAL2 = 4;

}

接收与发送需根据寄存器进行判断

判断接收与发送的代码如下:

char RecvFromUart()

{

while( !(UTRSTAT2 & 0x1) )

{

;

}

return URXH2;

}

void SendToUart(char c)

{

while( !(UTRSTAT2 & (0x1 << 1)) )

{

;

}

UTXH2 = c;

}

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:VR的世界

下一篇:MODBUS与LPC11C14

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号