CC2430 串口通信UART

    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";<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值