微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于CC2541的串口传输问题

关于CC2541的串口传输问题

时间:10-02 整理:3721RD 点击:

hi all,

我用CC2541与一个外部MCU通过UART口进行数据传输,数据程序中已经实现可以数据的正常通信,但是我无法使CC2541进入休眠状态PM2.

请问:

1,如何CC2541如何关闭UART口后进入休眠状态,

我修改了P1SEl和PIDIR,PERCFG用于修改UART管口配置,uart不能正常工作了,但是一直出现pwrmgr_attribute.pwrmgr_task_state = 2,不进入休眠

我在程序中发现HalUARTClose,但是这个函数无定义

2,下面这个函数是不是当pwrmgr_attribute.pwrmgr_task_state == 0时才能说程序进入到PM2,或者PM3休眠状态。

void osal_pwrmgr_powerconserve( void )
{
  uint32        next;
  halIntState_t intState;

  // Should we even look into power conservation
  if ( pwrmgr_attribute.pwrmgr_device != PWRMGR_ALWAYS_ON )
  {
    // Are all tasks in agreement to conserve
    if ( pwrmgr_attribute.pwrmgr_task_state == 0 )
    {
      // Hold off interrupts.
      HAL_ENTER_CRITICAL_SECTION( intState );

      // Get next time-out
      next = osal_next_timeout();

      // Re-enable interrupts.
      HAL_EXIT_CRITICAL_SECTION( intState );

      // Put the processor into sleep mode
      OSAL_SET_CPU_INTO_SLEEP( next );
    }
  }
}

 

请大神们帮帮忙!

 

顶一下,求帮助呀

顶一下,发现了一个问题,就是如果工程设置中增加了HAL_UART=TRUE,则

pwrmgr_attribute.pwrmgr_task_state 会一直为 2

void osal_pwrmgr_powerconserve( void )
{
uint32 next;
halIntState_t intState;

// Should we even look into power conservation
if ( pwrmgr_attribute.pwrmgr_device != PWRMGR_ALWAYS_ON )
{
// Are all tasks in agreement to conserve
if ( pwrmgr_attribute.pwrmgr_task_state == 0 )
{
// Hold off interrupts.
HAL_ENTER_CRITICAL_SECTION( intState );

// Get next time-out
next = osal_next_timeout();

// Re-enable interrupts.
HAL_EXIT_CRITICAL_SECTION( intState );

// Put the processor into sleep mode
OSAL_SET_CPU_INTO_SLEEP( next );
}
}
}

导致无法进入休眠状态,

但是不设置HAL_UART=TRUE则不能串口传输,怎么办

问题解决了,

是在配置中设置

HAL_UART_ISR=1
HAL_UART_DMA=0

上一篇:CC2541的RTC问题?
下一篇:2541蓝牙速率

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top