99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將例程從封裝芯片移植到目標(biāo)板上

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-01-12 16:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Other Parts Discussed in Post:CC1310, CC1350, CC2640, CC2640R2F, CC2650

作者: TI 工程師 Fan Zhang

CC1310 是經(jīng)濟(jì)高效型、超低功耗無線 MCU 中低于 1GHz 系列的器件。CC1310 器件在支持多個(gè)物理層和 RF 標(biāo)準(zhǔn)的平臺(tái)中將靈活的超低功耗 RF 收發(fā)器和強(qiáng)大的 48MHz Cortex?-M3 微控制器相結(jié)合。專用無線控制器 (Cortex?-M0) 處理 ROMRAM 中存儲(chǔ)的低層 RF 協(xié)議命令,從而確保超低功耗和靈活度。

針對(duì)不同的應(yīng)用需求,CC1310提供多種不同封裝,包括:7mm × 7mm RGZ VQFN48 封裝(30 個(gè)通用輸入/輸出 (GPIO)),5mm × 5mm RHB VQFN32 封裝(15 個(gè) GPIO),4mm × 4mm RSM VQFN32 封裝(10 個(gè) GPIO)。由于CC1310 Launchpad上使用的是7mm × 7mm封裝芯片,SDK中附帶的示例工程大多是基于7mm × 7mm封裝芯片編寫的。有些使用5mm × 5mm或4mm × 4mm封裝芯片的客戶,在CC1310 Launchpad上評(píng)估調(diào)試都沒問題,但是將代碼移植到自己的使用了5mm × 5mm或4mm × 4mm封裝芯片的板子上后,就出現(xiàn)這樣那樣的問題了。比如編譯報(bào)錯(cuò)說找不到變量聲明;代碼運(yùn)行效果與之前在Launchpad上不一樣;低功耗狀態(tài)功耗偏高等。其實(shí),這些問題都是在代碼移植過程中的板級(jí)文件配置不正確導(dǎo)致的。

本文將以SDK(simplelink_cc13x0_sdk_2_20_00_38)中的pinInterrupt例程為例,介紹如何將這個(gè)例程從7mm × 7mm封裝芯片移植到使用5mm × 5mm封裝芯片的目標(biāo)板上。同時(shí),這種移植方法,同樣也適用于TI SimpleLink 平臺(tái)下的其它芯片,包括:

CC1310、CC1312

CC1350、CC1352

CC2640、CC2640R2F、CC2642

CC2650、CC2652

一、從SDK中導(dǎo)入pinInterrupt例程,并在CC1310 Launchpad上進(jìn)行調(diào)試。

如下圖所示,從SDK中導(dǎo)入pinInterrupt例程,無需對(duì)導(dǎo)入的工程做任何修改,直接進(jìn)行編譯,然后下載到CC1310 Launchpad上。按Launchpad上的BTN-1,紅色LED狀態(tài)會(huì)翻轉(zhuǎn)(由亮變滅,或由滅變亮);按Launchpad上的BTN-2,綠色LED狀態(tài)會(huì)翻轉(zhuǎn)。

二、修改板級(jí)文件,測(cè)得<1uA的standby電流。

1. Board.h

Board.h文件中都是“#define”宏定義,是否修改并不影響代碼在不同封裝芯片上的運(yùn)行,可以暫時(shí)不做修改。

2. CC1310_LAUNCHXL_fxns.c

從2.20版本SDK開始,示例代碼中將片外SPI Flash操作API從CC1310_LAUNCHXL.c文件移到了CC1310_LAUNCHXL_fxns.c文件中。使用2.20之前版本SDK的用戶可以在CC1310_LAUNCHXL.c中找到這幾個(gè)API。

如果目標(biāo)板上沒有使用片外SPI Flash,可以將這個(gè)幾個(gè)API的實(shí)現(xiàn)代碼直接屏蔽。選中需要屏蔽的代碼段,按下快捷鍵“Ctrl + /”即可對(duì)代碼段整體進(jìn)行屏蔽。

/*

* ======== CC1310_LAUNCHXL_sendExtFlashByte ========

*/

voidCC1310_LAUNCHXL_sendExtFlashByte(PIN_Handle pinHandle, uint8_t byte)

{

// uint8_t i;

//

// /* SPI Flash CS */

// PIN_setOutputValue(pinHandle, IOID_20, 0);

//

// for (i = 0; i < 8; i++) {

// PIN_setOutputValue(pinHandle, IOID_10, 0); /* SPI Flash CLK */

//

// /* SPI Flash MOSI */

// PIN_setOutputValue(pinHandle, IOID_9, (byte >> (7 - i)) & 0x01);

// PIN_setOutputValue(pinHandle, IOID_10, 1); /* SPI Flash CLK */

//

// /*

// * Waste a few cycles to keep the CLK high for at

// * least 45% of the period.

// * 3 cycles per loop: 8 loops @ 48 Mhz = 0.5 us.

// */

// CPUdelay(8);

// }

//

// PIN_setOutputValue(pinHandle, IOID_10, 0); /* CLK */

// PIN_setOutputValue(pinHandle, IOID_20, 1); /* CS */

//

// /*

// * Keep CS high at least 40 us

// * 3 cycles per loop: 700 loops @ 48 Mhz ~= 44 us

// */

// CPUdelay(700);

}

/*

* ======== CC1310_LAUNCHXL_wakeUpExtFlash ========

*/

voidCC1310_LAUNCHXL_wakeUpExtFlash(void)

{

// PIN_Config extFlashPinTable[] = {

// /* SPI Flash CS */

// IOID_20 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL |

// PIN_INPUT_DIS | PIN_DRVSTR_MED,

// PIN_TERMINATE

// };

// PIN_State extFlashPinState;

// PIN_Handle extFlashPinHandle = PIN_open(&extFlashPinState, extFlashPinTable);

//

// /*

// * To wake up we need to toggle the chip select at

// * least 20 ns and ten wait at least 35 us.

// */

//

// /* Toggle chip select for ~20ns to wake ext. flash */

// PIN_setOutputValue(extFlashPinHandle, IOID_20, 0);

// /* 3 cycles per loop: 1 loop @ 48 Mhz ~= 62 ns */

// CPUdelay(1);

// PIN_setOutputValue(extFlashPinHandle, IOID_20, 1);

// /* 3 cycles per loop: 560 loops @ 48 Mhz ~= 35 us */

// CPUdelay(560);

//

// PIN_close(extFlashPinHandle);

}

/*

* ======== CC1310_LAUNCHXL_shutDownExtFlash ========

*/

voidCC1310_LAUNCHXL_shutDownExtFlash(void)

{

// /*

// * To be sure we are putting the flash into sleep and not waking it,

// * we first have to make a wake up call

// */

// CC1310_LAUNCHXL_wakeUpExtFlash();

//

// PIN_Config extFlashPinTable[] = {

// /* SPI Flash CS*/

// IOID_20 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL |

// PIN_INPUT_DIS | PIN_DRVSTR_MED,

// /* SPI Flash CLK */

// IOID_10 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |

// PIN_INPUT_DIS | PIN_DRVSTR_MED,

// /* SPI Flash MOSI */

// IOID_9 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL |

// PIN_INPUT_DIS | PIN_DRVSTR_MED,

// /* SPI Flash MISO */

// IOID_8 | PIN_INPUT_EN | PIN_PULLDOWN,

// PIN_TERMINATE

// };

// PIN_State extFlashPinState;

// PIN_Handle extFlashPinHandle = PIN_open(&extFlashPinState, extFlashPinTable);

//

// uint8_t extFlashShutdown = 0xB9;

//

// CC1310_LAUNCHXL_sendExtFlashByte(extFlashPinHandle, extFlashShutdown);

//

// PIN_close(extFlashPinHandle);

}

3. CC1310_LAUNCHXL_TIRTOS.cmd

通常,.cmd文件不需要進(jìn)行修改。如果你使用了包含較小Flash的CC1310芯片,則需要在.cmd文件中設(shè)置正確的FLASH_SIZE。

/* The starting address of the application. Normally the interrupt vectors */

/* must be located at the beginning of the application. */

#defineFLASH_BASE 0x0

#defineFLASH_SIZE 0x20000 // 0x20000 = 128k, 0x10000 = 64k

#defineRAM_BASE 0x20000000

#defineRAM_SIZE 0x5000

4. CC1310_LAUNCHXL.c

CC1310_LAUNCHXL.c中有很多關(guān)于各個(gè)片上外設(shè)的驅(qū)動(dòng)對(duì)應(yīng)的常量,我們可以先把沒有用到的外設(shè)對(duì)應(yīng)的定義部分先屏蔽掉,只保留pinInterrupt例程需要用到的PIN和Power模塊。

另外,我們?cè)谶@一階段只測(cè)量standby狀態(tài)工作電流,不進(jìn)行按鍵和LED操作,因此將PIN_Init也屏蔽掉。

/*

* ======== CC1310_LAUNCHXL_initGeneral ========

*/

voidCC1310_LAUNCHXL_initGeneral(void)

{

Power_init();

// if (PIN_init(BoardGpioInitTable) != PIN_SUCCESS) {

// /* Error with PIN_init */

// while (1);

// }

/* Perform board-specific initialization */

Board_initHook();

}

5. CC1310_LAUNCHXL.h

CC1310_LAUNCHXL.h文件是引腳分配和片上外設(shè)相關(guān)的enum變量定義。同樣,因?yàn)閑num變量定義是否修改并不影響代碼在不同封裝芯片上的運(yùn)行,可以暫時(shí)不做修改。

在CC1310_LAUNCHXL.h文件中,將所有引腳都設(shè)置成PIN_UNASSIGNED。

/* Mapping of pins to board signals using general board aliases

*

*/

/* Analog capable DIOs */

#defineCC1310_LAUNCHXL_DIO23_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO24_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO25_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO26_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO27_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO28_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO29_ANALOG PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO30_ANALOG PIN_UNASSIGNED

/* Digital IOs */

#defineCC1310_LAUNCHXL_DIO0 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO1 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO12 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO15 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO16_TDO PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO17_TDI PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO21 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_DIO22 PIN_UNASSIGNED

/* Discrete Inputs */

#defineCC1310_LAUNCHXL_PIN_BTN1 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PIN_BTN2 PIN_UNASSIGNED

/* GPIO */

#defineCC1310_LAUNCHXL_GPIO_LED_ON 1

#defineCC1310_LAUNCHXL_GPIO_LED_OFF 0

/* I2C */

#defineCC1310_LAUNCHXL_I2C0_SCL0 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_I2C0_SDA0 PIN_UNASSIGNED

/* LEDs */

#defineCC1310_LAUNCHXL_PIN_LED_ON 1

#defineCC1310_LAUNCHXL_PIN_LED_OFF 0

#defineCC1310_LAUNCHXL_PIN_RLED PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PIN_GLED PIN_UNASSIGNED

/* PWM Outputs */

#defineCC1310_LAUNCHXL_PWMPIN0 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN1 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN2 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN3 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN4 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN5 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN6 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_PWMPIN7 PIN_UNASSIGNED

/* SPI */

#defineCC1310_LAUNCHXL_SPI_FLASH_CS PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_FLASH_CS_ON 0

#defineCC1310_LAUNCHXL_FLASH_CS_OFF 1

/* SPI Board */

#defineCC1310_LAUNCHXL_SPI0_MISO PIN_UNASSIGNED /* RF1.20 */

#defineCC1310_LAUNCHXL_SPI0_MOSI PIN_UNASSIGNED /* RF1.18 */

#defineCC1310_LAUNCHXL_SPI0_CLK PIN_UNASSIGNED /* RF1.16 */

#defineCC1310_LAUNCHXL_SPI0_CSN PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_SPI1_MISO PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_SPI1_MOSI PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_SPI1_CLK PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_SPI1_CSN PIN_UNASSIGNED

/* UART Board */

#defineCC1310_LAUNCHXL_UART_RX PIN_UNASSIGNED /* RXD */

#defineCC1310_LAUNCHXL_UART_TX PIN_UNASSIGNED /* TXD */

#defineCC1310_LAUNCHXL_UART_CTS PIN_UNASSIGNED /* CTS */

#defineCC1310_LAUNCHXL_UART_RTS PIN_UNASSIGNED /* RTS */

6. pinInterrupt.c

因?yàn)槲覀儼阉械囊_都設(shè)置成了PIN_UNASSIGNED,所以在pinInterrupt.c文件中對(duì)引腳的操作會(huì)報(bào)錯(cuò),我們先暫時(shí)將這些語句屏蔽掉。

/*

* Initial LED pin configuration table

* - LEDs Board_PIN_LED0 is on.

* - LEDs Board_PIN_LED1 is off.

*/

PIN_Config ledPinTable[] = {

// Board_PIN_LED0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX,

// Board_PIN_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,

PIN_TERMINATE

};

/*

* Application button pin configuration table:

* - Buttons interrupts are configured to trigger on falling edge.

*/

PIN_Config buttonPinTable[] = {

// Board_PIN_BUTTON0 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,

// Board_PIN_BUTTON1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,

PIN_TERMINATE

};

/*

* ======== buttonCallbackFxn ========

* Pin interrupt Callback function board buttons configured in the pinTable.

* If Board_PIN_LED3 and Board_PIN_LED4 are defined, then we'll add them to the PIN

* callback function.

*/

voidbuttonCallbackFxn(PIN_Handle handle, PIN_Id pinId) {

// uint32_t currVal = 0;

//

// /* Debounce logic, only toggle if the button is still pushed (low) */

// CPUdelay(8000*50);

// if (!PIN_getInputValue(pinId)) {

// /* Toggle LED based on the button pressed */

// switch (pinId) {

// case Board_PIN_BUTTON0:

// currVal = PIN_getOutputValue(Board_PIN_LED0);

// PIN_setOutputValue(ledPinHandle, Board_PIN_LED0, !currVal);

// break;

//

// case Board_PIN_BUTTON1:

// currVal = PIN_getOutputValue(Board_PIN_LED1);

// PIN_setOutputValue(ledPinHandle, Board_PIN_LED1, !currVal);

// break;

//

// default:

// /* Do nothing */

// break;

// }

// }

}

/*

* ======== mainThread ========

*/

void*mainThread(void*arg0)

{

/* Open LED pins */

// ledPinHandle = PIN_open(&ledPinState, ledPinTable);

// if(!ledPinHandle) {

// /* Error initializing board LED pins */

// while(1);

// }

//

// buttonPinHandle = PIN_open(&buttonPinState, buttonPinTable);

// if(!buttonPinHandle) {

// /* Error initializing button pins */

// while(1);

// }

//

// /* Setup callback for button pins */

// if (PIN_registerIntCb(buttonPinHandle, &buttonCallbackFxn) != 0) {

// /* Error registering button callback function */

// while(1);

// }

/* Loop forever */

while(1) {

sleep(1000);

}

}

至此,所有代碼修改已經(jīng)完成,保存所有的源文件,重新編譯,然后下載到目標(biāo)板上。

代碼編譯結(jié)束時(shí),會(huì)提示下面警告信息,提示聲明的變量沒有使用,確實(shí)是,但不用管它。

斷開JTAG連接,將萬用表串入電源與目標(biāo)板之間,就可以觀察到<1uA的工作電流,因?yàn)楝F(xiàn)在代碼絕大部分時(shí)間都是處于standby狀態(tài)。

三、按照目標(biāo)板硬件配置引腳分配。

在我們使用的目標(biāo)板上,有一個(gè)按鍵和一個(gè)LED。按鍵作為輸入連到CC1310的DIO11,然后使用DIO9輸出電平控制LED。針對(duì)這個(gè)配置,在按照上述步驟修改過的代碼上繼續(xù)進(jìn)行如下修改。

1. CC1310_LAUNCHXL.c

取消對(duì)PIN_init的 屏蔽。CCS中對(duì)某個(gè)代碼段進(jìn)行取消屏蔽操作的快捷鍵還是“Ctrl + /”。

/*

* ======== CC1310_LAUNCHXL_initGeneral ========

*/

voidCC1310_LAUNCHXL_initGeneral(void)

{

Power_init();

if(PIN_init(BoardGpioInitTable) != PIN_SUCCESS) {

/* Error with PIN_init */

while(1);

}

/* Perform board-specific initialization */

Board_initHook();

}

2. CC1310_LAUNCHXL.h

分別設(shè)置CC1310_LAUNCHXL_PIN_BTN1和CC1310_LAUNCHXL_PIN_RLED對(duì)應(yīng)的引腳,其他仍保持PIN_UNASSIGNED設(shè)置。

/* Discrete Inputs */

#defineCC1310_LAUNCHXL_PIN_BTN1 IOID_11

#defineCC1310_LAUNCHXL_PIN_BTN2 PIN_UNASSIGNED

/* GPIO */

#defineCC1310_LAUNCHXL_GPIO_LED_ON 1

#defineCC1310_LAUNCHXL_GPIO_LED_OFF 0

/* I2C */

#defineCC1310_LAUNCHXL_I2C0_SCL0 PIN_UNASSIGNED

#defineCC1310_LAUNCHXL_I2C0_SDA0 PIN_UNASSIGNED

/* LEDs */

#defineCC1310_LAUNCHXL_PIN_LED_ON 1

#defineCC1310_LAUNCHXL_PIN_LED_OFF 0

#defineCC1310_LAUNCHXL_PIN_RLED IOID_9

#defineCC1310_LAUNCHXL_PIN_GLED PIN_UNASSIGNED

3. pinInterrupt.c

取消對(duì)Board_PIN_LED0和Board_PIN_BUTTON0的屏蔽,取消對(duì)Board_PIN_BUTTON0的中斷處理部分的屏蔽,取消ledPinHandle和buttonPinHandle的初始化和中斷處理函數(shù)注冊(cè)的屏蔽。

/*

* Initial LED pin configuration table

* - LEDs Board_PIN_LED0 is on.

* - LEDs Board_PIN_LED1 is off.

*/

PIN_Config ledPinTable[] = {

Board_PIN_LED0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX,

// Board_PIN_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,

PIN_TERMINATE

};

/*

* Application button pin configuration table:

* - Buttons interrupts are configured to trigger on falling edge.

*/

PIN_Config buttonPinTable[] = {

Board_PIN_BUTTON0 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,

// Board_PIN_BUTTON1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,

PIN_TERMINATE

};

/*

* ======== buttonCallbackFxn ========

* Pin interrupt Callback function board buttons configured in the pinTable.

* If Board_PIN_LED3 and Board_PIN_LED4 are defined, then we'll add them to the PIN

* callback function.

*/

voidbuttonCallbackFxn(PIN_Handle handle, PIN_Id pinId) {

uint32_t currVal = 0;

/* Debounce logic, only toggle if the button is still pushed (low) */

CPUdelay(8000*50);

if(!PIN_getInputValue(pinId)) {

/* Toggle LED based on the button pressed */

switch(pinId) {

caseBoard_PIN_BUTTON0:

currVal =PIN_getOutputValue(Board_PIN_LED0);

PIN_setOutputValue(ledPinHandle, Board_PIN_LED0, !currVal);

break;

// case Board_PIN_BUTTON1:

// currVal = PIN_getOutputValue(Board_PIN_LED1);

// PIN_setOutputValue(ledPinHandle, Board_PIN_LED1, !currVal);

// break;

default:

/* Do nothing */

break;

}

}

}

/*

* ======== mainThread ========

*/

void*mainThread(void*arg0)

{

/* Open LED pins */

ledPinHandle =PIN_open(&ledPinState, ledPinTable);

if(!ledPinHandle) {

/* Error initializing board LED pins */

while(1);

}

buttonPinHandle =PIN_open(&buttonPinState, buttonPinTable);

if(!buttonPinHandle) {

/* Error initializing button pins */

while(1);

}

/* Setup callback for button pins */

if(PIN_registerIntCb(buttonPinHandle, &buttonCallbackFxn) != 0) {

/* Error registering button callback function */

while(1);

}

/* Loop forever */

while(1) {

sleep(1000);

}

}

至此,所有代碼修改已經(jīng)完成,保存所有的源文件,重新編譯,然后下載到目標(biāo)板上。

每按一次目標(biāo)板上的按鍵,LED的狀態(tài)會(huì)翻轉(zhuǎn)一次。

這樣,我們就成功的將SDK中基于7mm × 7mm封裝的pinInterrupt例程移植到了使用5mm × 5mm封裝的目標(biāo)板上。這個(gè)例程比較簡(jiǎn)單,只使用到了PIN 模塊。如果用戶需要使用更多片上外設(shè),比如ADC,UART等,只需在CC1310_LAUNCHXL.c文件中取消對(duì)應(yīng)模塊代碼的屏蔽,并在CC1310_LAUNCHXL.h文件中,按照目標(biāo)板上的引腳關(guān)系,將對(duì)應(yīng)的引腳配置由PIN_UNASSIGNED修改為對(duì)應(yīng)的IO即可。

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    10299
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【CW32模塊使用】SG90舵機(jī)

    我們的目標(biāo)例程移植至CW32F030C8T6開發(fā)【能夠控制舵機(jī)旋轉(zhuǎn)的功能】。首先要獲取資
    的頭像 發(fā)表于 03-29 17:22 ?545次閱讀
    【CW32模塊使用】SG90舵機(jī)

    如何將項(xiàng)目IAR遷移到Embedded Studio

    本文描述如何將IAR EWARM項(xiàng)目遷移到SEGGER Embedded Studio(簡(jiǎn)稱SES)中。
    的頭像 發(fā)表于 02-25 17:11 ?591次閱讀
    <b class='flag-5'>如何將</b>項(xiàng)目<b class='flag-5'>從</b>IAR遷移到Embedded Studio

    如何將RT-Thread移植NXP MCUXPressoIDE

    RT-Thread默認(rèn)支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植NXP MCUXPressoIDE呢?本文內(nèi)容比較簡(jiǎn)單但稍有瑣碎,希望對(duì)有需要的小伙伴有
    的頭像 發(fā)表于 02-13 10:37 ?1922次閱讀
    <b class='flag-5'>如何將</b>RT-Thread<b class='flag-5'>移植</b><b class='flag-5'>到</b>NXP MCUXPressoIDE<b class='flag-5'>上</b>

    如何將python文件導(dǎo)入ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實(shí)踐案例分析,介紹如何將 python 文件導(dǎo)入 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?805次閱讀
    <b class='flag-5'>如何將</b>python文件導(dǎo)入<b class='flag-5'>到</b>ROS系統(tǒng)中

    基于PC的MP3播放器軟件移植ADSP-21262 SHARC處理器

    電子發(fā)燒友網(wǎng)站提供《基于PC的MP3播放器軟件移植ADSP-21262 SHARC處理器.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 14:54 ?0次下載
    <b class='flag-5'>將</b>基于PC的MP3播放器軟件<b class='flag-5'>移植</b><b class='flag-5'>到</b>ADSP-21262 SHARC處理器<b class='flag-5'>上</b>

    芯片封裝IC載

    一、IC載芯片封裝核心材料(一)IC載:“承上啟下”的半導(dǎo)體先進(jìn)封裝的關(guān)鍵材料IC封裝基板
    的頭像 發(fā)表于 12-14 09:00 ?1244次閱讀
    <b class='flag-5'>芯片</b><b class='flag-5'>封裝</b>IC載<b class='flag-5'>板</b>

    新質(zhì)生產(chǎn)力材料 | 芯片封裝IC載

    一、IC載芯片封裝核心材料(一)IC載:“承上啟下”的半導(dǎo)體先進(jìn)封裝的關(guān)鍵材料IC封裝基板
    的頭像 發(fā)表于 12-11 01:02 ?1853次閱讀
    新質(zhì)生產(chǎn)力材料 | <b class='flag-5'>芯片</b><b class='flag-5'>封裝</b>IC載<b class='flag-5'>板</b>

    視頻目標(biāo)跟蹤01,概念與方法

    導(dǎo)讀目標(biāo)跟蹤的應(yīng)用場(chǎng)景,底層模型,組件,類型和具體算法幾個(gè)方面對(duì)目標(biāo)跟蹤做了全方面的介紹,非常好的入門文章。在今天的文章中,我們深入研究視頻目標(biāo)
    的頭像 發(fā)表于 11-20 01:06 ?910次閱讀
    視頻<b class='flag-5'>目標(biāo)</b>跟蹤<b class='flag-5'>從</b>0<b class='flag-5'>到</b>1,概念與方法

    基于CW32模塊的SHT30溫濕度傳感器設(shè)計(jì)

    我們的目標(biāo)例程移植至CW32F030C8T6開發(fā)【測(cè)量溫濕度的功能】。首先要獲取資料,查
    的頭像 發(fā)表于 11-12 11:14 ?912次閱讀
    基于CW32模塊的SHT30溫濕度傳感器設(shè)計(jì)

    如何將WOLFSSL移植TI Sitara AM335入門套件

    電子發(fā)燒友網(wǎng)站提供《如何將WOLFSSL移植TI Sitara AM335入門套件.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 11:29 ?1次下載
    <b class='flag-5'>如何將</b>WOLFSSL<b class='flag-5'>移植</b><b class='flag-5'>到</b>TI Sitara AM335入門套件

    如何在RT-thread studio的裸機(jī)例程移植freertos?

    如何在RT-thread studio的裸機(jī)例程移植freertos
    發(fā)表于 09-13 06:32

    【GD32 MCU 移植教程】9、 STM32F10x 系列移植 GD32F30x 系列

    對(duì)比、外設(shè)及性能對(duì)比以及 STM32F10x 移植 GD32F30x 的移植步驟,旨在讓開發(fā)者能夠快速STM32F10x
    的頭像 發(fā)表于 09-07 09:57 ?1974次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】9、<b class='flag-5'>從</b> STM32F10x 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32F30x 系列

    【GD32 MCU 移植教程】2、 GD32F303 移植 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列產(chǎn)品,該系列資源與 GD32F303 兼容度非常高,本應(yīng)用筆記旨在幫助您快速將應(yīng)用程序 GD32F303 系列微控制器移植
    的頭像 發(fā)表于 08-31 09:36 ?2208次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】2、<b class='flag-5'>從</b> GD32F303 <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32F503

    ASIC IP核移植FPGA——更新概念并推動(dòng)改變以完成充滿挑戰(zhàn)的任務(wù)!

    本系列文章數(shù)字芯片設(shè)計(jì)項(xiàng)目技術(shù)總監(jiān)的角度出發(fā),介紹了如何將芯片的產(chǎn)品定義與設(shè)計(jì)和驗(yàn)證規(guī)劃進(jìn)行結(jié)合,詳細(xì)講述了在FPGA使用IP核來開發(fā)A
    的頭像 發(fā)表于 08-10 17:13 ?1098次閱讀
    <b class='flag-5'>將</b>ASIC IP核<b class='flag-5'>移植</b><b class='flag-5'>到</b>FPGA<b class='flag-5'>上</b>——更新概念并推動(dòng)改變以完成充滿挑戰(zhàn)的任務(wù)!