CC2430 串口通信UART

本文介绍了CC2430如何利用USART0进行串口通信,强调了接收中断的开启及中断处理。通过示例代码展示了如何在接收到数据后更新LCD显示,并提供了一个`uartGetkey()`函数来处理按键输入,包括回车、退格和ESC键的操作。同时,指出使用超级终端时可能存在的问题,如需多次启动才能响应。
摘要由CSDN通过智能技术生成

    CC2430有两个串行通信接口USART0和USART1,本实验采用第一个接口。要实现的功能是在超级终端发送数据到开发板,并且在lcd上显示。

    那么,此实验中UART中主要用的是接受功能。当U0CSR.RE=1时,在UART上数据接收就开始了。然后UART会在输入引脚中寻找有效起始位,并且设置U0CSR.ACTIVE位为1,表明UART处于忙状态。当检测到有效起始位时,收到的字节就传入接收寄存器U0BUF,同时U0CSR.RX_BYTE位置1,表明接收数据完成。之后,会产生接收完成中断,通过寄存器U0BUF提供数据。当U0BUF被读出时,U0CSR.RX_BYTE由硬件清零。

    开始时,运行程序,发现键盘上的任何输入,都没有产生任何反应,之后发现程序一直停在uartGetkey()函数中的while (!URX0IF )处,再观察寄存器,发现URX0IF一直为0,也就是说,在数据接收完成后,并没有产生一个中断,于是程序停在这里。为什么呢?后来把芯片手册看了一下,发现这个中断默认是关闭的,若想要用,必须打开。它的使能位在IEN2寄存器2位,0关闭,1使能。如图;

    于是在原程序上还加一条语句:IEN2=0x04;即可。

     主函数如下:

void main(void){
   char c = 0;
   UINT8 i;
   char s[]="UART <--> LCD";<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值