我使用的SDK是
CC2640R2 SDK 4.20.00.04
我想自定义GPIO,使用的是从机的官方例程!
首先我将main里面Board_initGeneral();里面的GPIO 屏蔽了,
const PIN_Config BoardGpioInitTable[] = { //CC2640R2_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,/* LED initially off */ //CC2640R2_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,/* LED initially off */ //CC2640R2_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,/* Button is active low */ //CC2640R2_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,/* Button is active low */ //CC2640R2_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN, /* External flash chip select */ //CC2640R2_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,/* UART RX via debugger back channel */ //CC2640R2_LAUNCHXL_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,/* UART TX via debugger back channel */ //CC2640R2_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,/* SPI master out - slave in */ //CC2640R2_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,/* SPI master in - slave out */ //CC2640R2_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,/* SPI clock */PIN_TERMINATE };
之后我在SimplePeripheral_init(),函数末尾添加了自己的GPIO init,这样添加是否正确?,应为我这边长时间测试的时候会遇到从机停止广播的情况!
Viki Shi:
把不用的引脚屏蔽掉,把要用的引脚定义写进BoardGpioInitTable即可。或者直接在sysconfig里改
user6313700:
回复 Viki Shi:
请问如果在BoardGpioInitTable里面屏蔽掉后添加自己的引脚,还需要在SimplePeripheral_init()里面,调用一次PIN_open()吗?
user6313700:
回复 Viki Shi:
还有一点就是在从机例程里面,我能不能直接将 //
//Board_initGeneral(); 替换成PIN_init(BoardGpioInitTable); 代码如下int main() {/* Register Application callback to trap asserts raised in the Stack */RegisterAssertCback(AssertHandler);//Board_initGeneral();PIN_init(BoardGpioInitTable);
Viki Shi:
回复 user6313700:
不用调用,Board_initGeneral那个追踪下来是到:
void CC2640R2_LAUNCHXL_initGeneral(void) {Power_init();if (PIN_init(BoardGpioInitTable) != PIN_SUCCESS) {/* Error with PIN_init */while (1);}/* Perform board-specific initialization */Board_initHook(); }建议还是用原来的
user6313700:
回复 Viki Shi:
这里有几个问题想问一下
1.我尝试了一下直接调用PIN_init(BoardGpioInitTable);程序可以正常运行,所以Power_init();这个干什么用的?
2.对于Power_init();来说,我自己定制的板子是不需要加载这个功能的吧?
Viki Shi:
回复 user6313700:
电源初始化函数,此函数初始化电源管理器的内部状态。一般作为TI-RTOS初始化的一部分