您的位置 首页 基础

LCP2131例程 UART0查询法

includeconfighvoidDelayNS(uint32dly){uint32i;for(;dly>0;dly–)for(i=0;i50000;i++);}defineUART_BPS

#include”config.h”

voidDelayNS(uint32 dly)
{
uint32 i;

for(;dly>0;dly–)
for(i=0;i<50000;i++);
}

#defineUART_BPS 115200

voidUART0_Init(void)
{
uint16 Fdiv;

U0LCR=0x83;//决议发送和接纳的数据字符格局, 0x1000 0011 8位字符长度,1个中止位,制止奇偶校验

Fdiv=(Fpclk/16)/UART_BPS;
U0DLM=Fdiv/256;
U0DLL=Fdiv%256;
U0LCR=0x03;//设制好波特率后,再封闭不让设制。

}

uint8 UART0_GetByte(void)
{
uint8 rcv_dat;

while((U0LSR&0x01)==0);//U0LSR 线状况寄存器,供给UART Rx,Tx模块的状况信息;这里是判别是否接纳数据安排妥当。

rcv_dat=U0RBR;//接纳缓存寄存器

return(rcv_dat);
}

voidUART0_GetStr(uint8*s,uint32 n)
{
for(;n>0;n–)
{
*s++=UART0_GetByte();
}
}

voidUART0_SendByte(uint8 dat)
{
U0THR=dat;//U0THR 发送坚持寄存器

while((U0LSR&0x40)==0);//发送器空,等U0THR为空。也便是等它发送完结。

}

voidUART0_SendStr(uint8const*str)
{
while(1)
{
if(*str==)break;
UART0_SendByte(*str++);
}
}

intmain()
{
uint8 snd[32];
PINSEL0=0x00000005;
UART0_Init();

while(1)
{
UART0_GetStr(snd,18);
DelayNS(10);
UART0_SendStr(snd);
DelayNS(10);
}

return0;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/258834.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部