TI CC2530 学习笔记-12-NewBit-CC2530-UART0-接收-发送

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21352095/article/details/83046581

TI CC2530 学习笔记-目录

功能:集成前面两个实现的功能,同时把串口波特率改为57600.能计时。能控制灯,设置时间。

  1. 配置LED,定时器,UART
halMcuWaitUs(10000);  //等待时间稳定,约10ms
  CLKCONCMD &= ~0x47;   //选择外部32MHZ时钟, 不分频
                        //TICKSPD不改变,保持为0x01,即定时器标记频率为16MHz
  while( (CLKCONSTA & 0x47) != 0x00 ); //切换时钟源后再次等待稳定
  
  P0DIR |= 0x40;    //配置IO为输出
  
/* 初始化串口 */
  P0SEL |= 0x0C; //将P02,P03设为外设功能
  PERCFG &= ~0x01;   //串口0占用P02 P03
  U0CSR = 0X80;    //USART模式设为UART模式
  U0UCR = 0x00;    //禁用流控,禁用奇偶检验,1位停止位
  U0CSR |= 0x40;    //允许接收
  U0GCR   |= 10;     //57600
  U0BAUD  =  216;
  IEN0 |= 0x04;     //开串口0接收中断
  
  /* 初始化定时器4*/
  T4CTL = 0xE2;   //128分频(0.125Mhz),模模式
  T4CCTL0 = 0x04; //比较模式
  T4CC0 = 125;    //溢出值
  T4CTL |= 0x08;
  T4CCTL0 |= 0x40;//开T4通道0中断
  T4IE = 1;   //开T4中断
  
  /* 初始化定时器3 */
  T3CTL = 0xE2;   //128分频(0.125Mhz),模模式
  T3CCTL0 = 0x04; //比较模式
  T3CC0 = 125;    //溢出值
  T3CTL |= 0x08;  //打开溢出中断
  T3CCTL0 |= 0x40;//开T3通道0中断
  T3IE = 1;        //定时器3中断使能
  T3CTL |= 0x10;  //启动定时器
 
  IEN0 |= 0X80;   //开总中断
  
  LED_R_IO = LED_R_ACTIVE;//点亮LED
  1. 在main函数的while循环里刷新时间,设置时间
while(1)
  {
    /* 检查串口是否收到消息 */
    if (culUartRxBufferRead(uartRxBuf, &length) == SUCCESS)
    {
      if (length == 9)
      {
        culTimeSet(uartRxBuf); //设置后即时刷新时间
      }
      else if(length == 1)
      {
        culLedControl(uartRxBuf[0]); //控制LED的字符,从串口得到
      }
    }
    /* 检查是否需要打印串口时间 */
    if (gTimeBrush == 1)
    {
      culTimePutOut();
      gTimeBrush = 0; 
      /* 检查LED控制方式 */
      if (gLedBlinkFollowSecend)
      {
        LED_R_TOG(); 
      }
    }
  }

代码:NewBit-ZDK CC2530 基础例程

猜你喜欢

转载自blog.csdn.net/qq_21352095/article/details/83046581
今日推荐