主题中讨论的其他器件:CC1310
工具与软件:
int main (空)
{
//初始化板
Board_init();
//初始化任务参数
Task_Params taskParams;
#ifdef One_task_create
Task_Params testTaskParams;
#endif
#ifndef use_default_user_CFG
//对板设置使用自定义用户配置
macUser0Cfg[0]。pAssertFP = macHalAssertHandler;
#endif
#if ((CONFIG_RANGE_EXT_MODE == APIMAC_HIGH_GAIN_MODE)&&
已定义(DeviceFamily_CC13X0)&&!已定义(FREQ_2_4G)
//如果为特定的器件系列和频率启用范围扩展模式,则初始化 PALNA
macUser0Cfg[0]。pSetRE = Board_Palna_;
#endif
//根据 TI-RTOS 惯例初始化与电路板相关的任务,例如 LED
PIN_INIT (BoardGpioInitTable);
#ifdef Feature_BLE_OAD
//如果启用了 FEATURE_BLE_OAD,请检查复位上是否按下左按钮
如果(! PIN_getInputValue (Board_PIN_BUTTON0)
{
OAD_markSwitch();
}
#endif /* Feature_BLE_OAD */
#if 已定义(POWER_MEAS)
//禁用用于功率测量的外部闪存
Board_shutDownExtFlash();
#endif
#if defined (图元_BLE_OAD)|| defined (图元本机 OAD)
//如果启用了 BLE OAD 或本机 OAD,则初始化 SPI
SPI_INIT();
#endif
#IF 1
//设置输入变量和初始欢迎消息
字符输入;
const char echoPrompt[]="AXM500设备正在启动\r\n";
UART_Handle UART;
#endif
//为 System_printf 启用 UART 输出(..)
uart_init();
uart_params_init (&uartParams);
#ifdef task_command
//配置 UART 参数
uartParams.writeDataMode = UART_DATA_binary;
uartParams.readDataMode = UART_DATA_binary;
uartParams.readReturnMode = UART_RETURN_FULL;
uartParams.readEcho = uart_echo_off;
uartParams.baudrate = 115200;
//打开 UART 和处理错误
hUart = UART_open (Board_UART0、&uartParams);
如果(hUart == NULL)
{
system_abort ("打开 UART 时出错");
}
#else
//配置并初始化 UART 参数
uartParams.readMode = UART_mode_callback;
uartParams.readCallback = Uart_Read 回;
uartParams.writeMode = UART_mode_callback;
uartParams.writeCallback = Uart_Write back;
uartParams.writeDataMode = UART_DATA_binary;
uartParams.readDataMode = UART_DATA_binary;
uartParams.readReturnMode = UART_RETURN_FULL;
uartParams.readEcho = uart_echo_off;
uartParams.baudrate = 115200;
UartPrintf_init (UART_open (Board_UART0、&uartParams);
UART_WRITE (hUart、echoPrompt、sizeof (echoPrompt));
#endif
//打印系统输出和版本/版本信息
system_printf ("\r\n");
system_printf("=================================================== \r\n");
System_printf (" AXM500设备正在启动\r\n ");
System_printf ("软件版本:%d.%d \r\n "、VER_MAJOR、VER_PATCH);
System_printf ("发布日期:%s /%s \r\n"、__DATE__、__TIME__);
system_printf("=================================================== \r\n");
#ifdef OSAL_PORT2TIRTOS
//通过将 OSAL 转换为 SYS/BIOS 来初始化 MAC 任务
_macTaskId = macTaskInit (macUser0Cfg);
#endif
/*配置任务。 */
Task_Params_(&taskParams);
taskParams.stack = appTaskStack;
taskParams.STACKSIZE = APP_TASK_STACK_SIZE;
taskParams.priority = APP_task_priority;
Task_structure (&appTask、appTaskFxn、&taskParams、NULL);
#ifdef debug_sw_trace
//配置调试软件跟踪设置
IOCPortConfigureSet (IOID_8、IOC_PORT_RFC_TRC、IOC_STD_OUTPUT)
| IOC_CURRENT_4mA | IOC_SLEW_ENABLE);
#endif /* debug_sw_trace */
#ifdef One_task_create
/*配置任务。 */
Task_Params_(&taskParams);
taskParams.stack = appTasktestStack;
taskParams.STACKSIZE = APP_TASK_STACK_SIZE;
taskParams.priority = APP_task_priority;
Task_structure (&appTasktest、appTasktestFxn、&taskParams、NULL);
#endif
//设置并创建主线程
pthread_t thread;
pthread_attr_t attrs;
结构 sched_param priParam;
内部代表;
pthread_attr_init (&atts);
priparam.sched_priority = 2;
retc = pthread_attr_setschedparam (&atts,&priParam);
retc |= pthread_attr_setdetachstate (&atts、pthread_create_detachstate);
retc |= pthree_attr_setstacksize (&atts、THREADSTACKSIZE);
//即使属性设置失败也继续
如果(retc!= 0)
{
system_printf ("失败线程\r\n:");
while (1)
;
}
/*为主应用程序逻辑创建线程*/
retc = pthread_create (&thread、&atts、mainThread、NULL);
/*创建线程失败*/
如果(retc!= 0)
{
system_printf ("创建线程失败\r\n:");
while (1)
;
}
//启用中断并启动 SYS/BIOS
BIOS_start();
返回(0);
}
------------------
感谢您的回复。
当前、当我使用"Power_Sleep (PowerCC26XX_STANDBY)"进入睡眠模式时、将输出0.25mA。 我想有一些器件处于待机模式、所以我正在寻找它们。 当我使用 UART_CLOSE ()函数进入 SLEEP 模式时,当我关闭0.22mA 时 SLEEP 电流的值会下降到 UART。 我想知道我是否可以在主循环中关闭其他东西? 另外、关断 UART 时、cc1310中使用的 UART 引脚也会被下拉、这是我要进入睡眠模式所需执行的设置吗?
我想知道、在进入睡眠模式后使用线程或任务来关闭其他器件是否存在问题?