使用原协议栈,在无任何其他改动的情况下。做如下修改
#define HAL_PA_LNA
/* 1 – Green P1.0*/
#define LED1_BV BV(0)
#define LED1_SBIT P1_0
#define LED1_DDR P1DIR
#define LED1_POLARITY ACTIVE_HIGH
#if defined (HAL_BOARD_CC2530EB_REV17)
/* 2 – Red P0.0*/
#define LED2_BV BV(0)
#define LED2_SBIT P0_0
#define LED2_DDR P0DIR
#define LED2_POLARITY ACTIVE_LOW
结果发现LED1正常,LED2不亮。后面把#define x HAL_PA_LNA 关闭。则两个LED都正常了。
YiKai Chen:
使能HAL_PA_LNA會共用到預設的LED腳位所以LED2會被不動作
Alvin Chen:
PIN冲突了,你修改一下led的PIN就可以了。
user5032796:
回复 Alvin Chen:
你好,是否可以从PA这一边修改。因为硬件P0.0已经固定是LED2了。PA使用RXF2401,用到的脚P1.1和P1.2。
user5032796:
回复 YiKai Chen:
共用到预设的LED脚位。貌似PA不会占用到P0.0?请问可以从哪里找到被设置的代码或者改修改哪部分代码?谢谢
Alvin Chen:
回复 user5032796:
不建议,那样要修改PA程序,不如修改led 简单。
www.ti.com.cn/…/swra465a.pdf
YiKai Chen:
回复 user5032796:
如果P1.1是PAEN和P1.2是LNA control,可以到macRadioTurnOnPower內修改/* P1_1 -> PAEN */RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;OBSSEL1= OBSSEL_OBS_CTRL0;/* P1_4 -> EN (LNA control) */RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;OBSSEL4= OBSSEL_OBS_CTRL1;
為/* P1_1 -> PAEN */RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;OBSSEL1= OBSSEL_OBS_CTRL0;/* P1_4 -> EN (LNA control) */RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;OBSSEL2= OBSSEL_OBS_CTRL1;應該就可以了
user5032796:
回复 YiKai Chen:
按照您说的 修改了,上电闪了一下,然后就熄灭了。
void GenericApp_Init( uint8 task_id )
{ 。。。。
HalLedBlink ( HAL_LED_1, 0, 50, 1000 );
HalLedBlink ( HAL_LED_2, 0, 50, 500 );
}。
硬件部分:
LED2是:3.3V连电阻连LED再连到P0.0。 低电平使能。
是否需要在应用层进行IO初始化?
YiKai Chen:
回复 user5032796:
LED的設置你要去修改hal_board_cfg.h下面的程序
#if defined (HAL_BOARD_CC2530EB_REV17) && !defined (HAL_PA_LNA) && \!defined (HAL_PA_LNA_CC2590) && !defined (HAL_PA_LNA_SE2431L) && \!defined (HAL_PA_LNA_CC2592)#define HAL_NUM_LEDS3
#elif defined (HAL_BOARD_CC2530EB_REV13) || defined (HAL_PA_LNA) ||\defined (HAL_PA_LNA_CC2590)|| defined (HAL_PA_LNA_CC2592) || \defined (HAL_PA_LNA_SE2431L)#define HAL_NUM_LEDS1
#else#error Unknown Board Indentifier
#endif#define HAL_LED_BLINK_DELAY()st( { volatile uint32 i; for (i=0; i<0x5800; i++) { }; } )
/* 1 – Green */
#define LED1_BVBV(0)
#define LED1_SBITP1_0
#define LED1_DDRP1DIR
#define LED1_POLARITYACTIVE_HIGH#if defined (HAL_BOARD_CC2530EB_REV17)/* 2 – Red */#define LED2_BVBV(1)#define LED2_SBITP1_1#define LED2_DDRP1DIR#define LED2_POLARITYACTIVE_HIGH
/* 3 – Yellow */#define LED3_BVBV(4)#define LED3_SBITP1_4#define LED3_DDRP1DIR#define LED3_POLARITYACTIVE_HIGH
#endif
user5032796:
回复 YiKai Chen:
那应该没问题的。
硬件配置:
RXF2401:TXEN–P1.1 RXEN–P1.2。
LED1:P1.0–电阻–灯–GND 高电平使能
LED2:3.3V–电阻–灯–P0.0 低电平使能
我所有的修改的代码如下(红色为在修改部分):
//LED1和LED2闪烁—————————————————
在GenericApp.c中
void GenericApp_Init( uint8 task_id ){ …
HalLedBlink ( HAL_LED_1, 0, 50, 1000 ); HalLedBlink ( HAL_LED_2, 0, 50, 500 );
}
//开启PA——————————————————————–
在hal_board_cfg.h中
#define HAL_PA_LNA
在mac_radio_defs.c中
MAC_INTERNAL_API void macRadioTurnOnPower(void){ …..
else { /* P1_1 -> PAEN */ RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV; OBSSEL1 = OBSSEL_OBS_CTRL0; /* P1_4 -> EN (LNA control) */ RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV; OBSSEL2 = OBSSEL_OBS_CTRL1; }
}
//LED配置—————————————————————–
在hal_board_cfg.h中
/* 1 – Green */#define LED1_BV BV(0)#define LED1_SBIT P1_0#define LED1_DDR P1DIR#define LED1_POLARITY ACTIVE_HIGH
#if defined (HAL_BOARD_CC2530EB_REV17) /* 2 – Red */ #define LED2_BV BV(0) #define LED2_SBIT P0_0 #define LED2_DDR P0DIR #define LED2_POLARITY ACTIVE_LOW
/* 3 – Yellow */ #define LED3_BV BV(4) #define LED3_SBIT P1_4 #define LED3_DDR P1DIR #define LED3_POLARITY ACTIVE_HIGH#endif
YiKai Chen:
回复 user5032796:
1. 你下面這段程序的HAL_NUM_LEDS有沒有改成3?
#elif defined (HAL_BOARD_CC2530EB_REV13) || defined (HAL_PA_LNA) || \
defined (HAL_PA_LNA_CC2590) || defined (HAL_PA_LNA_CC2592) || \
defined (HAL_PA_LNA_SE2431L)
#define HAL_NUM_LEDS 1
2. 如果你是要讓led2在GenericApp_Init的時候閃一下,HalLedBlink ( HAL_LED_2, 0, 50, 500 ) 應該改成HalLedBlink ( HAL_LED_2, 1, 50, 500 );
TI中文支持网