串口的发送

前言

单片机如何与pc机进行通讯呢?可以用串口和网线嘛!
今天我们来讲讲怎么用串口点灯的小程序。
先做程序前,我们先受洗一下串口的使用。


在cc2530的单片机上串口有UART模式和SPI模式。我们今天的主角就是UART。
因此我们要选择UART

USART0控制和状态寄存器U0CSR

/*选择UART的方式*/
U0CSR|=0x80;

接下来我们需要设置UART的模式,比如说是奇校验还是偶校验等等。这时候我们需要设置控制寄存器

控制寄存器U0UCR

/*使能奇偶校验*/
U0UCR|=0x08;

接着我们需要设置波特率,因此需要用到波特率的控制U0BAUD和通用控制U0GCR

/*波特率baud_e的选择*/
U0GCR|=10;
/*波特率设置为57600*/
U0BAUD|=216;

好了,我们设置完后只需要判断串口发送数据是否发送完就可以了

while(U0CSR&0x02==0);

最后我们来完成串口发送点灯的实验

void UARTinit()
{
    PERCFG=0x00;//使用串口备用位置1 P0口
    P0SEL=0x3c;//P0口作为串口
    P2DIR&=~0xc0;//选择串口0优先作为串口
    U0CSR|=0x80;//UART方式
    U0GCR|=10;//波特率baud_e的选择
    U0BAUD|=216;//波特率设置为57600
}
void UartTX_Send_String(char *Data)
{
    int j;
    for(j=0;j<sizeof(Data),j++)
    {
        U0DBUF =*Data++;
        while(U0CSR&0x02==0);
    }
}

void main()
{
    LEDinit();//LED1初始化。
    CLOCKinit();//系统时钟初始化
    UARTinit();//串口初始化
    char sendData[]="Hello UART";
    while(1)
    {
        UartTX_Send_String(sendData);
        LED1=~LED1;      
    }
}

关于LED初始化可以查看我的博客《通用IO中断》,系统时钟初始化可以查看我的博客《外设IO的概述》。


上面发送是用查询发送的,那么怎么用中断方式,和串口接收数据呢?我们下期见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值