This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/CC2640R2F:如何对 CC2640r2f RHB 进行编程以读取和广播模拟数据。

Guru**** 2551710 points
Other Parts Discussed in Thread: CC2640, CC2640R2F, TMP116

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/795830/compiler-cc2640r2f-how-to-program-cc2640r2f-rhb-to-read-and-advertise-analog-data

器件型号:CC2640R2F
主题中讨论的其他器件:CC2640TMP116

工具/软件:TI C/C++编译器

尊敬的 TI 专家:

    我使用的是 CCS 9.0.1。 我尝试使用 CC2640 LaunchPad 的示例程序对 CC2640R2F RHB 进行编程、以测试 GPIO 引脚。 我在 LAUNCHXL.c、LAUNCHXL.h 和 Board.h 文件中进行了更改、以重复使用 GPIO 引脚。 我已添加了其他 GPIO 定义和用法行的注释。 并根据 CC2640R2F RHB 定制板重复使用。 我没有遇到任何错误。 当我尝试对其进行调试并 使用万用表检查 GPIO 引脚上的电压时、它显示为0V。 在调试代码时、生成了一些.c 文件、并具有48引脚 CC2640R2F RGZ (LaunchPad)的 GPIO。 不知道正在发生什么以及为什么不接受 LAUNCHXL.h 和 LAUNCHXL.c 文件中的更改。 我想通过 BLE 以串行方式发送模拟数据。 请在这方面帮助我... 我是 TI 的新手。

谢谢你  

这些是我所做的更改。。。

 LAUNCHXL.C

#include 
#include 
#include 

#include 
#include 
#include 
#include 

#include "CC2640R2_LAUNCHXL.h"

/*
======================================== ADCBuf ================================================
*/
#include 
#include 

ADCBufCC26XX_Object adcBufCC26xxObjects[CC2640R2_LAUNCHXL_ADCBUFCOUNT];

//
*此表将虚拟 ADC 通道转换为 dio 和内部模拟
*输入信号。 此表是 adcBuf
*驱动程序运行所必需的。 注释掉未使用的条目以保存闪存。 DIO 和内部信号
*对硬接线。 不要在表中重新映射它们。 您可以对整个
*条目重新排序。 dio 和内部信号的映射取决于封装。
*/
const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLutt[CC2640R2_LAUNCHXL_ADCBUF0CHANNELCOUNT]={
{CC2640R2_LAUNCHXL_DIO7_ANALOG、ADC_COMPB_IN_AUXIO7}、
//{CC2640R2_LAUNCHXL_DIO8_ANALOG、ADC_COMPB_IN_AUXIO6}、
//{CC2640R2_LAUNCHXL_DIO9_ANALOG、 ADC_COMPB_IN_AUXIO5}、
//{CC2640R2_LAUNCHXL_DIO10_ANALOG、ADC_COMPB_IN_AUXIO4}、
//{CC2640R2_LAUNCHXL_DIO11_ANALOG、ADC_COMPB_IN_AUXIO3}、
//{CC2640R2_LAUNCHXL_DIO12_ANALOG、ADC_COMPB_IN_AUXIO2}、
//{CC2640R2_LAUNCHXL_DIO13_ANALOG、ADC_COMPB_IN_AUXIO1}、
//{CC2640R2_LAUNCHXL_DIO14_ANALOG、 ADC_COMPB_IN_AUXIO0}、
{PIN_Unassigned、ADC_COMPB_IN_VDDS}、
{PIN_Unassigned、ADC_COMPB_IN_DCOUPL}、
{PIN_UNLOADD、ADC_COMPB_IN_VSS}、
};

const ADCBBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCBUFCOUNT]={
{
.intPriority =~0、
.wiPriority = 0、
.adcChannelLut = ADCBufCC26XX_adcChannelLut
、}
};

const ADCBuf_Config ADCBuf_config[CC2640R2_LAUNCHXL_ADCBUFCOUNT]={
{
ADCBufCC26XX_fxnTable (&A)、
&adcBufCC26xx 对象[CC2640R2_LAUNCHXL_ADCBUF0]、
adcBufCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCBUF0]
}、
};

const uint_least8_t ADCBBuf_count = CC2640R2_LAUNCHXL_ADCBUFCOUNT;

/*
================================================= ADC ================================================
*/
#include 
#include 

ADCCC26XX_Object adcCC26xxObjects[CC2640R2_LAUNCHXL_ADCCOUNT];

const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCCOUNT]={
{
.adcDIO = CC2640R2_LAUNCHXL_DIO7_ANALOG、
.adcCompBInput = ADC_COMPB_IN_AUXIO7、
.refSource = ADCCC26XX_fixed_reference、
.samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
.inputScalingEnabled = true、
.triggerSource = ADCCC26XX_TRIGGER_MANUAL、
.returnAdjustedVal = false
}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO8_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO6、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO9_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO5、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO10_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO4、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO11_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO3、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO12_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO2、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO13_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO1、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
//{
// .adcDIO = CC2640R2_LAUNCHXL_DIO14_ANALOG、
// .adcCompBInput = ADC_COMPB_IN_AUXIO0、
// .refSource = ADCCC26XX_fixed_reference、
// .samplingDuration = ADCCC26XX_SAMPLING_DURAY_10P9_MS、
// .inputScalingEnabled = true、
// .triggerSource = ADCCC26XX_TRIGGER_MANUAL、
// .returnAdjustedVal = false
//}、
{
.adcDIO = PIN_Unassigned、
.adcCompBInput = ADC_COMPB_IN_DCOUPL、
.refSource = ADCCC26XX_fixed_reference、
.samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
.inputScalingEnabled = true、
.triggerSource = ADCCC26XX_TRIGGER_MANUAL、
.returnAdjustedVal = false
}、
{
.adcDIO = PIN_Unassigned、
.adcCompBInput = ADC_COMPB_IN_VSS、
.refSource = ADCCC26XX_fixed_reference、
.samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
.inputScalingEnabled = true、
.triggerSource = ADCCC26XX_TRIGGER_MANUAL、
.returnAdjustedVal = false
}、
{
.adcDIO = PIN_Unassigned、
.adcCompBInput = ADC_COMPB_IN_VDDS、
.refSource = ADCCC26XX_fixed_reference、
.samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
.inputScalingEnabled = true、
.triggerSource = ADCCC26XX_TRIGGER_MANUAL、
返回调整值= false
}
};

const ADC_Config ADC_CONFIG[CC2640R2_LAUNCHXL_ADCCOUNT]={
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADC0]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC0]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADC1]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC1]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADC2]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC2]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC2640R2_LAUNCHXL_ADC3]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC3]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADC4]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC4]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC2640R2_LAUNCHXL_ADC5]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC5]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADC6]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC6]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADC7]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADC7]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADCDCOUPL]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCDCOUPL]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADCVSS]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCVSS]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC2640R2_LAUNCHXL_ADCVDDS]、&adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCVDDS]}、
};

const uint_least8_t ADC_count = CC2640R2==*====LAUNCHXL_ADCVDDS=}


Crypto ================================================
*/
#include 

CryptoCC26XX_Object cryptoCC26XX Objects[CC2640R2_LAUNCHXL_CRYPTOCOUNT];

const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2640R2_LAUNCHXL_CRYPTOCOUNT]={
{
baseAddr = crypto_BASE、
powerMngrId = PowerCC26XX_Periph_crypto、
.intNum = INT_crypto_result_ave_IRQ、
.intPriority =~0、
}
};

const CryptoCC26XX_Config CryptoCC26XX_config[CC2640R2_LAUNCHXL_CRYPTOCOUNT]={
{
.object =加密 CC26XX 对象[CC2640R2_LAUNCHXL_CRYPTO0]、
hwAttrs =加密 CC26XXXXXHWAttrs[CC2640R2_LAUNCHXL_CRYPTO0]
}、
};

/*
========================================= AESCM=========================================
*/
#include 
#include 

AESCMCC26XX_Object aesccmCC26XX Objects[CC2640R2_LAUNCHXL_AESCMCOUNT];

const AESCMCC26XX_HWAttrs aesccmCC26XXXHWAttrs[CC2640R2_LAUNCHXL_AESCMCOUNT]=
{
{
.intPriority =~0
、}
};

const AESCM_Config AESCM_CONFIG[CC2640R2_LAUNCHXL_AESCMCOUNT]={
{
.object = aesccmCC26XX 对象[CC2640R2_LAUNCHXL_AESCM0]、
hwAttrs =&aesccmCC26XXXXHWAttrs[CC2640R2_LAUNCHXL_AESCM0]
}、
};

const uint_least8_t AESCM_COUNT = CC2640R2_LAUNCHXL_AESCMCOUNT;

/*
=================================== AESGCM =========================================
*/
#include 
#include 

AESGCMCC26XX_Object aesgcmCC26XX Objects[CC2640R2_LAUNCHXL_AESGCMCOUNT];

const AESGCMCC26XX_HWAttrs aesgcmCC26XXXHWAttrs[CC2640R2_LAUNCHXL_AESGCMCOUNT]={
{
.intPriority =~0
、}
};

const AESGCM_Config AESGCM_CONFIG[CC2640R2_LAUNCHXL_AESGCMCOUNT]={
{
.object = aesgcmCC26XX 对象[CC2640R2_LAUNCHXL_AESGCM0]、
hwAttrs =&aesgcmCC26XXXXHWAttrs[CC2640R2_LAUNCHXL_AESGCM0]
}、
};

const uint_least8_t AESGCM_COUNT = CC2640R2_LAUNCHXL_AESGCMCOUNT;

/*
================================================= AESCBC ================================================
*/
#include 
#include 

AESCBCCC26XX_Object aesccCC26XX Objects[CC2640R2_LAUNCHXL_AESCBCOUNT];

CONST AESCBCCC26XX_HWAttrs aescbCC26XXXXHATtrs[CC2640R2_LAUNCHXL_AESCBCOUNT]={
{
.intPriority =~0
、}
};

const AESCBC_Config AESCBC_CONFIG[CC2640R2_LAUNCHXL_AESCBCOUNT]={
{
.object = aescbcCC26XX 对象[CC2640R2_LAUNCHXL_AESCB0]、
hwAttrs =&aescbcCC26XXXXHWAttrs[CC2640R2_LAUNCHXL_AESCB0]
}、
};

const uint_least8_t AESCBC_COUNT = CC2640R2_LAUNCHXL_AESCBCCOUNT;

/*
=========================== AESCTR ========================================
*/
#include 
#include 

AESCTRCC26XX_Object aesctrCC26XX Objects[CC2640R2_LAUNCHXL_AESCTRCOUNT];

const AESC26XX_HWAttrs aesctrCC26XXXHWAttrs[CC2640R2_LAUNCHXL_AESCTRCOUNT]={
{
.intPriority =~0
、}
};

const AESCTR_Config AESCTR_CONFIG[CC2640R2_LAUNCHXL_AESCTRCOUNT]={
{
.object = aesctrCC26XX 对象[CC2640R2_LAUNCHXL_AESCTR0]、
hwAttrs =&aesctrCC26XXXXHWAttrs[CC2640R2_LAUNCHXL_AESCTR0]
}、
};

const uint_least8_t AESCTR_COUNT = CC2640R2_LAUNCHXL_AESCTRCOUNT;

/*
================================================= AESECB ================================================
*/
#include 
#include 

AESECBCC26XX_Object aesecbCC26XX Objects[CC2640R2_LAUNCHXL_AESECBCOUNT];

const AESECBCC26XX_HWAttrs aesecbCC26XXXHWAttrs[CC2640R2_LAUNCHXL_AESECBCOUNT]={\f2}{\f2}
{
.intPriority =~0
、}
};

const AESECB_Config AESECB_CONFIG[CC2640R2_LAUNCHXL_AESECBCOUNT]={
{
.object = aesecbCC26XX 对象[CC2640R2_LAUNCHXL_AESECB0]、
hwAttrs =&aesecbCC26XXXXHWAttrs[CC2640R2_LAUNCHXL_AESECB0]
}、
};

const uint_least8_t AESECB_COUNT = CC2640R2_LAUNCHXL_AESECBCOUNT;

/*
=================================== AESCTRDRBG ========================================================
*/
#include 
#include 

AESCTRDRBGXX_Object aesctrdrbgXXObjects[CC2640R2_LAUNCHXL_AESCTRDRBGCOUNT];

const AESCTRDRBGXX_HWAttrs aesctrdrXGWAttrs[CC2640R2_LAUNCHXL_AESCTRDRBGCOUNT]={=}
{
a.esctrIndex = CC2640R2_LAUNCHXL_AESCTR0
、}
};

CONST AESCTRDRBG_Config AESCTRDRBG_CONFIG[CC2640R2_LAUNCHXL_AESCTRDRBGCOUNT]={
{
.object =&aesctrdrbgXX 对象[CC2640R2_LAUNCHXL_AESCTRDRBG0]、
hwAttrs =&aesctrdrbgXXXHWAttrs[CC2640R2_LAUNCHXL_AESCTRDRBG0]
},
};

const uint_least8_t AESCTRDRBG_COUNT = CC2640R2_LAUNCHXL_AESCTRDRBGCOUNT;

/*
==== 培训================================================
*/
#include 
#include 

TRNGCC26XX_Object trngCC26XX Objects[CC2640R2_LAUNCHXL_TRNGCOUNT];

CONST TRNGCC26XX_HWAttrs trngCC26X2HWAttrs[CC2640R2_LAUNCHXL_TRNGCOUNT]={
{
.intPriority =~0、
.wiPriority = 0、
.samplesPerCycle = 240000
、}
};

const TRNG_Config TRNG_CONFIG[CC2640R2_LAUNCHXL_TRNGCOUNT]={
{
.object =&trngCC26XX 对象[CC2640R2_LAUNCHXL_TRNG0]、
hwAttrs =&trngCC26X2HWAttrs[CC2640R2_LAUNCHXL_TRNG0]
}、
};

const uint_least8_t TRNG_COUNT = CC2640R2_LAUNCHXL_TRNGCOUNT;


/*
=========================== Display ===========================================
*/
#include 
#include 
#include 

#ifndef Board_display_uart_stRBUF_size
#define Board_display_uart_stRBUF_size 128
#endif

//可以将此值更改为96,以便与430BOOST-SHARP96 BoosterPack 配合使用。 */
#define Board_display_shared_size 128

DisplayUart_Object displayUartObject;
DisplaySharpObject displaySharpObject;

static char uartStringBuf[Board_display_UART_STRBUF_size];
static uint_least8_t DisplayBuf[Board_display_sharp_size * Board_display_sharp_size / 8];

const DisplayUart_HWAttrs Uarts ={display_sharpSize}
uartIdx = CC2640R2_LAUNCHXL_UART0、
波特率 = 115200、
.mutexTimeout =(unsigned int)(-1)、
strBuf = uartStringBuf、
strBufLen = Board_display_UART_STRBUF_size、
};

const DisplaySharp HWAttrsV1 displaySharpHWattrs ={
spiIndex = CC2640R2_LAUNCHXL_SPI0、
csPin = CC2640R2_LAUNCHXL_GPIO_LCD_CS、
powerPin = CC2640R2_LAUNCHXL_GPIO_LCD_POWER、
.enablePin = CC2640R2_LAUNCHXL_GPIO_LCD_ENABLE、
像素宽度= Board_display_sharp_size、
像素高度= Board_display_sharp_size、
.ddisplayBuf = sharpDisplayBuf、
};

#ifndef Board_display_use_UART
#define Board_display_use_UART 1
#endif
#ifndef Board_display_use_uart_ansi
#define Board_display_use_uart_ansi 0
#endif
Board_display_use_lcd
#define Board_display_use_neldif*




****如果需要使用 IAR 编译器#define *#define LCD_display_use_ise_unifdifdifndef *或#endif *。 IAR 编译器不喜欢空数组
*初始化。 (IAR Error[Pe1345])
*/
#if (Board_display_use_UART || Board_display_use_LCD)

const Display_Config Display_config[]={
#if (Board_display_use_UART)
{
# if (Board_display_use_uart_ansi)
.fxnTablePtr =&DisplayUartAnsi_fxnTable、
# else //默认为最小 UART,无光标放置*/
.fxnTablePtr =&DisplayUartMin_fxnTable
、# endif
.object =显示 UartObject (&D)、
hwAttrs =显示 UartHWAttrs (&D)、
}、
#endif
#if (Board_display_use_LCD)
{
.fxnTablePtr =&DisplaySharp_fxnTable、
.object =显示共享对象(&D)、
hwAttrs =显示 SharpHWattrs (&D)
}、
#endif
};

const uint_least8_t Display_count = sizeof (Display_config)/ sizeof (Display_Config);

#else

const Display_Config * Display_config = NULL;
const uint_least8_t Display_count = 0;

#endif //(Board_display_use_display_use_=/=/=*=*=*==*===/====*=====/=uart=======|_display_count


GPIO ===========================================
*/
#include 
#include 

/*
引脚配置数组
*注意:引脚配置的顺序必须与之前
的顺序一致* 在 CC2640R2_LAUNCHXL.h 中定义
*注意:不用于中断的引脚应放置在
*的末尾 数组。 回调数组到
*的回调条目可以省略 减少内存使用。
*/
GPIO_PinConfig gpioPinConfigs[]={
/*输入引脚*/
GPIOCC26XX_DIO_13 | GPIO_DO_NOT _CONFIG、/*按钮0 */
GPIOCC26XX_DIO_14 | GPIO_DO_NOT CONFIG、/*按钮1 */

// GPIOCC26XX_DIO_15 | GPIO_DO_NOT CONFIG、// CC2640R2_LAUNCHXL_SPI_MASTER_READY *
// GPIOCC26XX_DIO_21 | GPIO_DO_NOT CONFIG、* CC2640R2_LAUNCHXL_MASTER_READY *

/*输出引脚*/
// GPIOCC26XX_DIO_07 | GPIO_DO_NOT _CONFIG、//绿色 LED *
GPIOCC26XX_DIO_06 | GPIO_DO_INT_CONFIG、/*红色 LED */
// GPIOCC26XX_DIO_30 | GPIO_DO_INT_CONFIG、// TMP116_EN *
//
//////// SPI 闪存 CSn *
//// GPIOCC26XX_DIO_20 | GPIO_DO_CONFIG、


// GPIO_SD_CONFIG *//
//
//////////* Sharp Display - GPIO 配置将在 Display 文件中完成*//
GPIOCC26XX_DIO_24 | GPIO_DO_NOT CONFIG、// SPI 芯片选择*//
GPIOCC26XX_DIO_22 | GPIO_DO_NOT CONFIG、// GPIOCC26XX_DIO_23
| GPIO_CONFIG



/*
回调函数指针数数数数数数数数数数数数的数组
*注意:引脚配置的顺序必须与之前
的顺序一致* 在 CC2640R2_LAUNCH.h 中定义
*注意:不用于中断的引脚可从回调数组中省略至
* 减少内存使用(如果放置在 gpioPinConfigs 数组的末尾)。
*/
GPIO_CallbackFxn gpioCallbackFunctions[]={
空,/*按钮0 */
空,/*按钮1 */
空、// CC2640R2_LAUNCHXL_SPI_MASTER_READY */
空、//* CC2640R2_LAUNCHXL_SPI_SLAVE_READY */
};

const GPIOCC26XX_Config GPIOCC26XX_CONFIG ={
.pinConfigs =(GPIO_PinConfig *) gpioPinConfigs、
回调 =(GPIO_CallbackFxn *) gpioCallbackFunctions、
numberOfPinConfigs = CC2640R2_LAUNCHXL_GPIOCOUNT、
numberOfCallbacks = sizeof (gpioCallbackFuncions)/sizeof (GPIO_CallbackFxn)、
.intPriority =(~0)
};

/*
======================================== GPTimer ================================================
*删除 Board.c 和 Board.h
中未使用的条目以减少闪存的使用*/
#include 

GPTimerCC26XX_Object gptimerCC26XX Objects[CC2640R2_LAUNCHXL_GPTIMERCOUNT];

const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMERPARTSCONT]={\f429}{\f429}
{.baseAddr = GPT0_BASE、.intNum = INT_GPT0A、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT0、.pinMux = GPT_PIN_0A、 }、
{.baseAddr = GPT0_BASE、.intNum = INT_GPT0B、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT0、.pinMux = GPT_PIN_0B、 }、
{.baseAddr = gp1_BASE、.intNum = INT_GPT1A、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT1、.pinMux = GPT_PIN_1A、 }、
{.baseAddr = gp1_BASE、.intNum = INT_GPT1B、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT1、.pinMux = GPT_PIN_1B、 }、
{.baseAddr = GPT2_base、.intNum = INT_GPT2A、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT2、.pinMux = GPT_PIN_2A、 }、
{.baseAddr = GPT2_base、.intNum = INT_GPT2B、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT2、.pinMux = GPT_PIN_2B、 }、
{.baseAddr = GPT3_base、.intNum = INT_GPT3A、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT3、.pinMux = GPT_PIN_3A、 }、
{.baseAddr = GPT3_base、.intNum = INT_GPT3B、.intPriority =(~0)、.powerMngrId = PowerCC26XX_Periph_GPT3、.pinMux = GPT_PIN_3B、 }、
};

const GPTimerCC26XX_Config GPTimerCC26XX_CONFIG[CC2640R2_LAUNCHXL_GPTIMERPARTSCOUNT]={
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER0]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER0A]、GPT_A}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER0]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER0B]、GPT_B}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER1]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER1A]、GPT_A}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER1]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER1B]、GPT_B}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER2]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER2A]、GPT_A}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER2]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER2B]、GPT_B}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER3]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER3A]、GPT_A}、
{&gptimerCC26XX 对象[CC2640R2_LAUNCHXL_GPTIMER3]、&gptimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_GPTIMER3B]、GPT_B}、
};

/*
*================== I2C ================================================
*/
#include 
#include 

I2CCC26XX_Object i2cCC26xxObjects[CC2640R2_LAUNCHXL_I2CCOUNT;

const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2640R2_LAUNCHXL_I2CCOUNT ={
{
baseAddr = I2C0_BASE、
powerMngrId = PowerCC26XX_Periph_I2C0、
.intNum = INT_I2C_IRQ、
.intPriority =~0、
.wiPriority = 0、
// sdaPin = CC2640R2_LAUNCHXL_I2C0_SDA0、
// .sclPin = CC2640R2_LAUNCHXL_I2C0_SCL0
、}
};

const I2C_Config I2C_CONFIG[CC2640R2_LAUNCHXL_I2CCOUNT ={
{
.fxnTablePtr =&I2CCC26XX_fxnTable、
.object =&i2cCC26xx 对象[CC2640R2_LAUNCHXL_I2C0]、
hwAttrs =&i2cCC26xxHWAttrs[CC2640R2_LAUNCHXL_I2C0]
}、
};

const uint_least8_t I2C_count = CC2640R2_LAUNCHXL_I2CCOUNT;

/*
========================================== I2S ========================================================
*/
#include 
#include 

I2SCC26XX_Object i2sCC26XX Objects[CC2640R2_LAUNCHXL_I2SCOUNT];

const I2SCC26XX_HWAttrs i2sCC26XXHWAttrs[CC2640R2_LAUNCHXL_I2SCOUNT]={
{
// pinSD1 = CC2640R2_LAUNCHXL_I2S_ADI、
// pinSD0 = CC2640R2_LAUNCHXL_I2S_ADO、
// 引脚 SCK = CC2640R2_LAUNCHXL_I2S_BCLK、
// 引脚 MCLK = CC2640R2_LAUNCHXL_I2S_MCLK、
// .pinWS = CC2640R2_LAUNCHXL_I2S_WCLK、
.intPriority =~0、
}
};

const I2S_Config I2S_CONFIG[CC2640R2_LAUNCHXL_I2SCOUNT]={
{
.object =&i2sCC26XX 对象[CC2640R2_LAUNCHXL_I2S0]、
hwAttrs =&i2sCC26XXXHWAttrs[CC2640R2_LAUNCHXL_I2S0]
}、
};

const uint_least8_t I2S_count = CC2640R2_LAUNCHXL_I2SCOUNT;

/*
=========================== NVS ================================================
*/
#include 
#include 
#include 

#define NVS_REGESS_BASE 0x1A000
#define SECTORSIZE 0x1000
#define REGIZE (SECTORSIZE * 4)

#ifndef Board_exclude_NVS_INTERNAL_FLASH

//
*通过在
所需的闪存地址放置一个未初始化的字节*数组来保留用于 NVS 驱动程序的闪存扇区。
//
#if defined (__TI_Compiler_version__)

//
*将未初始化的数组放置在 NVS_REGESS_BASE
*/
#pragma LOCATION (flashBuf、NVS_REGESS_BASE);
#pragma NOINIT (init_Buf);
static char flashIZBUF[REGINVBuE];

#elif defined (__OS_RESSION_STATES_SION_STATES_SION_RESSION_STATES_SION_RESSION_RESSION_RESSION_RESSION_RESSION_RESSION_RESSION_RESSION_RESSION_RESSION_RATION_




@

#elif defined (__GNU__)

//*
将闪存缓冲区放置在在 gcc 链接器文件中创建的.NVS 段中。
*.NVS 段在扇区边界上强制对齐、但
可以*放置在闪存中的任何位置。 如果需要、
可以通过更改 gcc 链接器文件中的以下内容将.NVS 段*设置为固定地址:
*
.NVS (fixed_flash_ADDR)(NoLoad):at (fixed_flash_ADDR){
* *(.NVS)
*}> region_text
*/
__attribute__(((section (".NVS")))
static char flashBuf[REGIZE];

#endif

//为 NVS 内部区域分配对象*/
NVSCC26XX_Object nvsCC26xxObjects[1];

// NVCC26xx_Attres1
的硬件属性= NVCC26xx/NVCC26xx_NVCC26xx_NVS 内部区域*
{
regionBase =(void *) flashBuf、
regionSize = REGIZE、
}、
};

#endif // Board_exclude_NVS_internal_flash */

#ifndef Board_exclude_NVS_EXTERNAL_FLASH

#define SPISECTORSIVERZE 0x1000
#define SPIREGISTORIZE (SPISECGIZE * 32)
#define NVIFYBUFSI64

static uint8_t 0x1000 #define SPIREGIFTS[SPIENDRVENTS_CLUS_ENTIVEST_ENDRESS1]***对象[SPIENIFVENIFVICEST_NVSIONZ]

* 2 * 2 * 2 * 2 * 2 * 2 * 2 * 1 * 1 * 1 * 1 * 1 * 1 *


1 *为对象分配 NVIFNVIFVINDIFFIWRUSTRIPSIONIFTS[SPIEN

{
regionBaseOffset = 0、
.ONSSIZE = SPIREGIZIZE、
sectorSize = SPISECTORSIZE、
verifyBuf = verifyBuf、
verifyBufSize = VERIFYBUFSIZE、
.spiHandle = NULL、
spiIndex = 0、
spiBitRate = 4000000、
spiCsnGpioIndex = CC2640R2_LAUNCHXL_GPIO_SPI_FLASH_CS、
.statusPollDelayU = 100、
}、
};

#endif // Board_exclude_NVS_EXTERNAL_FLASH *//

//////* NVS 区域索引0和1分别指 NVS 和 NVS SPI */
const NVS_Config NVS_CONFIG[CC2640R2_LAUNCHXL_NVSCOUNT]={
#ifndef Board_exclude_NVS_INTERNAL_FLASH}
{
.fxnTablePtr =&NVSCC26XX_fxnTable、
.object =_nvsCC26xx 对象[0]、
hwAttrs =&nvsCC26xxHWAttrs[0]、
}、
#endif
#ifndef Board_exclude_NVS_EXTERNAL_FLASH
{
.fxnTablePtr =&NVSSPI25X_fxnTable、
.object =_nvsSPI25XObjects[0]、
hwAttrs =&nvsSPI25XHOWAttrs[0]、
}、
#endif
};

const uint_least8_t NVS_count = CC2640R2_LAUNCHXL_NVSCOUNT;

/*
==== Pin ========================================================
*/
#include 
#include 

CONST PIN_Config 板 GpioInitTable[]={

// CC2640R2_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、 //
CC2640R2_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX, //
CC2640R2_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_迟滞、 //
CC2640R2_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_迟滞、 /*按钮为低电平有效*/
CC2640R2_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MIN、/*外部闪存芯片选择*
CC2640R2_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN、 /*通过调试器反向通道的 UART RX */
CC2640R2_LAUNCHXL_UART_TX | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull、 /*通过调试器反向通道的 UART TX */
CC2640R2_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN、 /* SPI 主器件输出-从器件输入*/
CC2640R2_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN、 /* SPI 主器件输入-从器件输出*/
CC2640R2_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN、 /* SPI 时钟*/

//我的新条目
CC2640R2_LAUNCHXL_DIO0 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、
PIN_TERMINATE
};

const PINCC26XX_HWAttrs PINCC26XX_hwAttrs =
{
.intPriority =~0、
.wiPriority = 0
};

/*
========================================= 电源================================================
*/
#include 
#include 

CONST PowerCC26XX_Config PowerCC26XX_CONFIG ={
策略 InitFxn =空、
policyFxn =&PowerCC26XX_standbyPolicy、
.calibrateFxn =&PowerCC26XX_CALIBRATE、
.enablePolicy = true、
.calibrateRCOSC_LF = true、
.calibrateRCOSC_HF = true、
};

/*
=================================== PWM ================================================
*删除 Board.c 和 Board.h
中未使用的条目以减少闪存的使用*/
#include 
#include 

PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2640R2_LAUNCHXL_PWMCOUNT];

const PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWMCOUNT]={/CC26xx_HCC2640R2_PWR2_PWMCL_PWMCC2640R2=
pT}p_PWMCC2640R2_PWR2_PWR2_PWR2_PWR2_PWR2_PWR2_PWMCC40R2_PWMCL_PWR2= PWR2_PWR2_PWMCL_PWMCL_PWR2RMT = 1、PWR2RM40R2_PWR2_PWR2_PWR2RMT =
PW
{.pwmPin = CC2640R2_LAUNCHXL_PWMPIN2、.gpTimerUnit = CC2640R2_LAUNCHXL_GPTIMER1A}、
{.pwmPin = CC2640R2_LAUNCHXL_PWMPIN3、.gpTimerUnit = CC2640R2_LAUNCHXL_GPTIMER1B}、
{.pwmPin = CC2640R2_LAUNCHXL_PWMPIN4、.gpTimerUnit = CC2640R2_LAUNCHXL_GPTIMER2A}、
{.pwmPin = CC2640R2_LAUNCHXL_PWMPIN5、.gpTimerUnit = CC2640R2_LAUNCHXL_GPTIMER2B}、
{.pwmPin = CC2640R2_LAUNCHXL_PWMPIN6、.gpTimerUnit = CC2640R2_LAUNCHXL_GPTIMER3A}、
{.pwmPin = CC2640R2_LAUNCHXL_PWMPIN7、.gpTimerUnit = CC2640R2_LAUNCHXL_GPTIMER3B}、
};

const PWM_Config PWM_CONFIG[CC2640R2_LAUNCHXL_PWMCOUNT]={
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM0]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM0]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM1]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM1]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM2]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM2]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM3]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM3]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM4]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM4]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM5]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM5]}、
{PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC2640R2_LAUNCHXL_PWM6]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM6]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xxObjects[CC2640R2_LAUNCHXL_PWM7]、&pwmtimerCC26xxHWAttrs[CC2640R2_LAUNCHXL_PWM7]};


const uint_least8_=== CC2640R2=_LAUNCHXL_PWM7]};====== CC2640R2=_COUNT==*====COUNT====COUNT=========COUNT=========_PWM====COUNT===========


射频驱动程序========================================
*/
#include 

const RFCC26XX_HWAttrsV2 RFCC26XX_hwAttrs ={
.hwiPriority =~0、 /*最低 HWI 优先级*/
.wiPriority = 0、 /*最低 SWI 优先级*/
.xoscHfAlwaysNeeded = true、 /*在待机状态下保持 XOSC 依赖性*/
globalCallback =空、 /*无特定于电路板的回调*/
globalEventMask = 0 /*没有订阅的事件*/
};

/*
========================================= sd ================================================
*/
#include 
#include 

SDSPI_Object sdspiObjects[CC2640R2_LAUNCHXL_SDCOUNT];

const SDSPI_HWAttrs sdspiHWAttrs[CC2640R2_LAUNCHXL_SDCOUNT]={
{
spiIndex = CC2640R2_LAUNCHXL_SPI0、
spiCssGpioIndex = CC2640R2_LAUNCHXL_SDSPI_CS
}
};

const SD_Config SD_config[CC2640R2_LAUNCHXL_SDCOUNT]={
{
.fxnTablePtr =&SDSPI_fxnTable、
.object =&sdspiObjects[CC2640R2_LAUNCHXL_SDSPI0]、
hwAttrs =&sdspiHWAttrs[CC2640R2_LAUNCHXL_SDSPI0]
}、
};

const uint_least8_t sd_count = CC2640R2_LAUNCHXL_SDCOUNT;

//
*================================================= SPI DMA ================================================
*/
#include 
#include 

SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2640R2_LAUNCHXL_SPICOUNT];

//
*注意:SD 驱动
程序可使用以下 SPI 实例通过 SPI 与 SD 卡进行通信*。 下面的'DEFaultTxBufValue'字段被设定为0xFF
*以满足 SDSPI 驱动程序要求。
*/
const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2640R2_LAUNCHXL_SPICOUNT]={
{
baseAddr = SSI0_BASE、
.intNum = INT_SSI0_comb、
.intPriority =~0、
.wiPriority = 0、
powerMngrId = PowerCC26XX_Periph_SSI0、
defaultTxBufValue = 0xFF、
.rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
MOSIPin = CC2640R2_LAUNCHXL_SPI0_MOSI、
MISO 引脚 = CC2640R2_LAUNCHXL_SPI0_MISO、
clkPin = CC2640R2_LAUNCHXL_SPI0_CLK、
.csn 引脚 = CC2640R2_LAUNCHXL_SPI0_CSn、
.minDmaTransferSize = 10
}、
{
baseAddr = SSI1_base、
.intNum = INT_SSI1_COMB、
.intPriority =~0、
.wiPriority = 0、
powerMngrId = PowerCC26XX_Periph_SSI1、
defaultTxBufValue = 0xFF、
.rxChannelBitMask = 1<<UDMA_CHAN_SSI1_RX,
txChannelBitMask = 1< 
#include 

UARTCC26XX_Object uartCC26XX Objects[CC2640R2_LAUNCHXL_UARTCOUNT];

uint8_t uartCC26XXRingBuffer[CC2640R2_LAUNCHXL_UARTCOUNT][32];

const UART26XX_HWAttrsuartCC26XL_LAUNCHV2][32];const UARTCC2640R2_LAUNCTXL_UARTCC2640R2_
{
baseAddr = UART0_BASE、
powerMngrId = PowerCC26XX_Periph_UART0、
.intNum = INT_UART0_COMB、
.intPriority =~0、
.wiPriority = 0、
txPin = CC2640R2_LAUNCHXL_UART_TX、
.rxPin = CC2640R2_LAUNCHXL_UART_RX、
ctsPin = PIN_Unassigned、
rtsPin = PIN_Unassigned、
.ringBufPtr = uartCC26XXRingBuffer[CC2640R2_LAUNCHXL_UART0]、
.ringBufSize = sizeof (uartCC26XXRingBuffer[CC2640R2_LAUNCHXL_UART0])、
TxIntFifoThr = UARTCC26XX_FIFO_THRESHOLD_1_8、
.rxIntFifoThr = UARTCC26XX_FIFO_THRESHOLD_4_8、
errorFxn =空
}
};

const UART_Config UART_CONFIG[CC2640R2_LAUNCHXL_UARTCOUNT]={
{
.fxnTablePtr =&UARTCC26XX_fxnTable、
.object = uartCC26XX 对象[CC2640R2_LAUNCHXL_UART0]、
hwAttrs = uartCC26XXHWAttrs[CC2640R2_LAUNCHXL_UART0]
}、
};

const uint_least8_t UART_count = CC2640R2_LAUNCHXL_UARTCOUNT;

/*
=========================== uDMA ================================================
*/
#include 

UDMACC26XX_Object udmaObjects[CC2640R2_LAUNCHXL_UDMACOUNT];

const UDMACC26XX_HWAttrs udmaHWAttrs[CC2640R2_LAUNCHXL_UDMACOUNT]={
{
baseAddr = UDMA0_BASE、
powerMngrId = PowerCC26XX_Periph_UDMA、
.intNum = INT_DMA_ERR、
.intPriority =~0
}
};

const UDMACC26XX_Config UDMACC26XX_CONFIG[CC2640R2_LAUNCHXL_UDMACOUNT]={
{
.object =&udmaObjects[CC2640R2_LAUNCHXL_UDMA0]、
hwAttrs =&udmaHWAttrs[CC2640R2_LAUNCHXL_UDMA0]
}、
};



/*
========================================= 看门狗=========================================
*/
#include 
#include 

看门狗 CC26XX_Object watchdogCC26XX Objects[CC2640R2_LAUNCHXL_WATCHDOGCOUNT];

const 看门狗 CC26XX_HWAttrs 观察 CC26XXHWAttrs[CC2640R2_LAUNCHXL_WATCHDOGCOUNT]={
{
baseAddr = WDT_BASE、
.reloadValue = 1000 //重新加载值(以毫秒为单位)*/
}、
};

const Watchdog_Config Watchdog_config[CC2640R2_LAUNCHXL_WATCHDOGCOUNT]={
{
fxnTablePtr =&WatchdogCC26XX_fxnTable、
.object =&watchdogCC26XX 对象[CC2640R2_LAUNCHXL_WATCHDOG0]、
hwAttrs =&watchdogCC26XXHWAITTRS[CC2640R2_LAUNCHXL_WATCHDOG0]
}、
};

const uint_least8_t Watchdog_count = CC2640R2_LAUNCHXL_WATCHDOGCOUNT;

//
*特定于电路板的初始化函数以禁用外部闪存。
*此函数在文件 CC2640R2_LAUNCHXL_Fxns.c
中定义*/
extern void Board_initHook (void);

/*
=== CC2640R2_LAUNCHXL_initGeneral ===
*/
void CC2640R2_LAUNCHXL_initGeneral (void)
{
power_init();

if (PIN_init (BoardGpioInitTable)!= PIN_SUCCESS){
/* PIN_init 错误*/
while (1);
}

/*执行特定于电路板的初始化*/
Board_initHook();
}

/*
==== Board_init ====
*/
void Board_init (void)
{
CC2640R2_LAUNCHXL_initGeneral();
}

LAUNCHXL.h

#ifndef __CC2640R2_LAUNCHXL_Board_H__
#define __CC2640R2_LAUNCHXL_Board_H__

#ifdef __cplusplus
extern "C"{
#endif

/* includes */
#include 
#include 

/* extern */
extern const PIN_Config BoardGpioInitTable[];

/*定义*/
#define CC2640R2_LAUNCHXL

//使用通用板别名将引脚映射到板信号
* 
*/

/* Analog Capable Dios */
#define CC2640R2_LAUNCHXL_DIO7_ANALOG ioID_7 //修改
//#define CC2640R2_LAUNCHXL_DIO8_ANALOG ioID_8. //修改
//#define CC2640R2_LAUNCHXL_DIO9_ANALOG ioID_9. //修改
//#define CC2640R2_LAUNCHXL_DIO10_ANALOG ioID_10 //修改
//#define CC2640R2_LAUNCHXL_DIO11_ANALOG ioID_11. //修改
了#define CC2640R2_LAUNCHXL_DIO12 ioID_12. //修改
了#define CC2640R2_LAUNCHXL_DIO13 ioID_13. //修改
了#define CC2640R2_LAUNCHXL_DIO14 ioID_14 //修改

的//*数字 IO */
#define CC2640R2_LAUNCHXL_DIO0 ioID_0
#define CC2640R2_LAUNCHXL_DIO1_ ioID_1
//#define CC2640R2_LAUNCHXL_DIO12 ioID_12. //修改
//#define CC2640R2_LAUNCHXL_DIO15 ioID_15 //修改
//#define CC2640R2_LAUNCHXL_DIO16_TDO ioID_16 //修改
//#define CC2640R2_LAUNCHXL_DIO17_TDI ioID_17 //修改
//#define CC2640R2_LAUNCHXL_DIO21 ioID_21 //修改
//#define CC2640R2_LAUNCHXL_DIO22 ioID_22 //修改

的//离散输入*//
#define CC2640R2_LAUNCHXL_PIN_BTN1 ioID_13. //修改
//#define CC2640R2_LAUNCHXL_PIN_BTN2 ioID_14 //修改

的//* GPIO *//
#define CC2640R2_LAUNCHXL_GPIO_LED_ON 1 //修改
//#define CC2640R2_LAUNCHXL_GPIO_LED_OFF 0 //已修改

/* I2C *//
#define CC2640R2_LAUNCHXL_DIO4 ioID_4
#define CC2640R2_LAUNCHXL_DIO5_TDO ioID_5 //已修改

/* I2S *//
#define CC2640R2_LAUNCHXL_I2S_ADO ioID_0
//#define CC2640R2_LAUNCHXL_I2S_ADI ioID_1
//#define CC2640R2_LAUNCHXL_I2S_BCLK ioID_30 //修改
#define CC2640R2_LAUNCHXL_I2S_MCLK PIN_UNLOADD/#define
CC2640R2_LAUNCHXL_I2S_WCLK ioID_29 //修改

的//* LED *//
#define CC2640R2_LAUNCHXL_PIN_LED_ON 1 //修改
//#define CC2640R2_LAUNCHXL_PIN_LED_OFF 0 //修改
了#define CC2640R2_LAUNCHXL_DIO6_TDI ioID_6. //修改
//#define CC1350_LAUNCHXL_DIO7 ioID_7

/* PWM 输出*/
//#define CC2640R2_LAUNCHXL_PWMPIN0 CC2640R2_LAUNCHXL_PIN_RLED //修改
//#define CC2640R2_LAUNCHXL_PWMPIN1 CC2640R2_LAUNCHXL_PIN_GLED //修改
了#define CC2640R2_LAUNCHXL_PWMPIN2 未分配引脚
#define CC2640R2_LAUNCHXL_PWMPIN3 PIN_UNLOADed
#define CC2640R2_LAUNCHXL_PWMPIN4 PIN_UNLOADed
#define CC2640R2_LAUNCHXL_PWMPIN5 PIN_UNLOADed
#define CC2640R2_LAUNCHXL_PWMPIN6 PIN_UNLOADed
#define CC2640R2_LAUNCHXL_PWMPIN7 PIN_UNLOADD/*

SPI */
#define CC2640R2_LAUNCHXL_SPI_FLASH_CS ioID_4. //修改
了#define CC2640R2_LAUNCHXL_FLASH_CS_ON 0
#define CC2640R2_LAUNCHXL_FLASH_OFF 1

//* SPI 板*/
#define CC2640R2_LAUNCHXL_SPI0_MISO ioID_8. /* RF1.20 */ //修改
#define CC2640R2_LAUNCHXL_SPI0_MOSI ioID_9. /* RF1.18 */ //修改
了#define CC2640R2_LAUNCHXL_SPI0_CLK ioID_10 /* RF1.16 */ //修改
的#define CC2640R2_LAUNCHXL_SPI0_CSn ioID_11. //修改
#define CC2640R2_LAUNCHXL_SPI1_MISO PIN_UNLOADed
#define CC2640R2_LAUNCHXL_SPI1_MOSI PIN_UNLOADed
#define CC2640R2_LAUNCHXL_SPI1_CLK 未分配引脚
#define CC2640R2_LAUNCHXL_SPI1_CSn PIN_UNLOADD/*

UART 板*/
#define CC2640R2_LAUNCHXL_UART_RX ioID_2 /* RXD */
#define CC2640R2_LAUNCHXL_UART_TX ioID_3. /* TXD */
//#define CC2640R2_LAUNCHXL_UART_CTS ioID_19 /* CTS */ //修改
//#define CC2640R2_LAUNCHXL_UART_RTS ioID_18 /* RTS */ //已修改

/*!
*@简要初始化通用板特定设置
*
*此函数初始化通用板特定设置。
//
void CC2640R2_LAUNCHXL_initGeneral (void);

//!
*@简要关闭 LaunchPad 上的外部闪存
*
*/
void CC2640R2_LAUNCHXL_shutDownExtFlash (void);

/*!
*@简要唤醒板级配置文件上的外部闪存
*
*此函数切换芯片选择所需的时间
*以唤醒芯片。
/void
CC2640R2_LAUNCHXL_wakeUpExtFlash (void);

/*!
*@def CC2640R2_LAUNCHXL_ADCBufName
*@ADC 的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_ADCBufName{
CC2640R2_LAUNCHXL_ADCBUF0 = 0、

CC2640R2_LAUNCHXL_ADCBUFCOUNT
}CC2640R2_LAUNCHXL_ADCBBufName;

/*!
*@def CC2640R2_LAUNCHXL_ADCBuf0SourceName
*@ADCBuf 通道的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_ADCBuf0ChannelName{
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL0 = 0、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL1、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL2、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL3、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL4、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL5、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL6、
CC2640R2_LAUNCHXL_ADCBUF0CHANNEL7、
CC2640R2_LAUNCHXL_ADCBUF0CHANNELVDDS、
CC2640R2_LAUNCHXL_ADCBUF0CHANNELDCOUPL、
CC2640R2_LAUNCHXL_ADCBUF0CHANNELVSS、

CC2640R2_LAUNCHXL_ADCBUF0CHANNELCOUNT
}CC2640R2_LAUNCHXL_ADCBuf0ChannelName;

/*!
*@def CC2640R2_LAUNCHXL_ADCName
*@ADC 的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_ADCName{
CC2640R2_LAUNCHXL_ADC0 = 0、
CC2640R2_LAUNCHXL_ADC1、
CC2640R2_LAUNCHXL_ADC2、
CC2640R2_LAUNCHXL_ADC3、
CC2640R2_LAUNCHXL_ADC4、
CC2640R2_LAUNCHXL_ADC5、
CC2640R2_LAUNCHXL_ADC6、
CC2640R2_LAUNCHXL_ADC7、
CC2640R2_LAUNCHXL_ADCDCOUPL、
CC2640R2_LAUNCHXL_ADCVSS、
CC2640R2_LAUNCHXL_ADCVDDS、

CC2640R2_LAUNCHXL_ADCCOUNT
}CC2640R2_LAUNCHXL_ADCName;

/*!
*@def CC2640R2_LAUNCHXL_CryptoName
*@Crypto name 的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_CryptoName{
CC2640R2_LAUNCHXL_CRYPTO0 = 0、

CC2640R2_LAUNCHXL_CRYPTOCOUNT
}CC2640R2_LAUNCHXL_CryptoName;

/*!
*@def CC2640R2_LAUNCHXL_AESCMName
*@AESCMCM 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_AESCMName{
CC2640R2_LAUNCHXL_AESCM0 = 0、

CC2640R2_LAUNCHXL_AESCMCOUNT
}CC2640R2_LAUNCHXL_AESCMName;

/*!
*@def CC2640R2_LAUNCHXL_AESGCMName
*@AESGCM 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_AESGCMName{
CC2640R2_LAUNCHXL_AESGCM0 = 0、

CC2640R2_LAUNCHXL_AESGCMCOUNT
}CC2640R2_LAUNCHXL_AESGCMName;

/*!
*@def CC2640R2_LAUNCHXL_AESCBCCName
*@AESCBC 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_AESCBCCName{
CC2640R2_LAUNCHXL_AESCCB0 = 0、

CC2640R2_LAUNCHXL_AESCCBCCOUNT
}CC2640R2_LAUNCHXL_AESBCName;

/*!
*@def CC2640R2_LAUNCHXL_AESCTRName
*@AESCTR 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_AESCTRName{
CC2640R2_LAUNCHXL_AESCTR0 = 0、

CC2640R2_LAUNCHXL_AESCTRCOUNT
}CC2640R2_LAUNCHXL_AESCTRName;

/*!
*@def CC2640R2_LAUNCHXL_AESECBName
*@AESECB 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_AESECBName{
CC2640R2_LAUNCHXL_AESECB0 = 0、

CC2640R2_LAUNCHXL_AESECBCOUNT
}CC2640R2_LAUNCHXL_AESECBName;

/*!
*@def CC2640R2_LAUNCHXL_AESCTRDRBGName
*@AESCTRDRBG 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_AESCTRDRBGName{
CC2640R2_LAUNCHXL_AESCTRDRBG0 = 0、

CC2640R2_LAUNCHXL_AESCTRDRBGCOUNT
}CC2640R2_LAUNCHXL_AESCTRDRBGName;

/*!
*@def CC2640R2_LAUNCHXL_TRNGName
*@TRNG 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_TRNGName{
CC2640R2_LAUNCHXL_TRNG0 = 0、

CC2640R2_LAUNCHXL_TRNGCOUNT
}CC2640R2_LAUNCHXL_TRNGName;

/*!
*@def CC2640R2_LAUNCHXL_GPIOName
*@GPIO 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_GPIOName{
CC2640R2_LAUNCHXL_GPIO_S1 = 0、
CC2640R2_LAUNCHXL_GPIO_S2、
CC2640R2_LAUNCHXL_SPI_MASTER_READY、
CC2640R2_LAUNCHXL_SPI_SLAVE_READY、
CC2640R2_LAUNCHXL_GPIO_LED_GREEN、
CC2640R2_LAUNCHXL_GPIO_LED_RED、
CC2640R2_LAUNCHXL_GPIO_TMP116_EN、
CC2640R2_LAUNCHXL_GPIO_SPI_FLASH_CS、
CC2640R2_LAUNCHXL_SDSPI_CS、
CC2640R2_LAUNCHXL_GPIO_LCD_CS、
CC2640R2_LAUNCHXL_GPIO_LCD_POWER、
CC2640R2_LAUNCHXL_GPIO_LCD_ENABLE、
CC2640R2_LAUNCHXL_GPIOCOUNT
}CC2640R2_LAUNCHXL_GPIOName;

/*!
*@def CC2640R2_LAUNCHXL_GPTimerName
*@GPTimer 部件的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_GPTimerName{
CC2640R2_LAUNCHXL_GPTIMER0A = 0、
CC2640R2_LAUNCHXL_GPTIMER0B、
CC2640R2_LAUNCHXL_GPTIMER1A、
CC2640R2_LAUNCHXL_GPTIMER1B、
CC2640R2_LAUNCHXL_GPTIMER2A、
CC2640R2_LAUNCHXL_GPTIMER2B、
CC2640R2_LAUNCHXL_GPTIMER3A、
CC2640R2_LAUNCHXL_GPTIMER3B、

CC2640R2_LAUNCHXL_GPTIMERPARTSCOUNT
}CC2640R2_LAUNCHXL_GPTimerName;

/*!
*@def CC2640R2_LAUNCHXL_GPTimers
*@GPTimers 的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_GPTimers{
CC2640R2_LAUNCHXL_GPTIMER0 = 0、
CC2640R2_LAUNCHXL_GPTIMER1、
CC2640R2_LAUNCHXL_GPTIMER2、
CC2640R2_LAUNCHXL_GPTIMER3、

CC2640R2_LAUNCHXL_GPTIMERCOUNT
}CC2640R2_LAUNCHXL_GPTimers;

/*!
*@def CC2640R2_LAUNCHXL_I2CName
*@I2C 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_I2CName{
CC2640R2_LAUNCHXL_I2C0 = 0、

CC2640R2_LAUNCHXL_I2CCOUNT
}CC2640R2_LAUNCHXL_I2CName;

/*!
*@def CC2640R2_LAUNCHXL_I2SName
*@I2S 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_I2SName{
CC2640R2_LAUNCHXL_I2S0 = 0、

CC2640R2_LAUNCHXL_I2SCOUNT
}CC2640R2_LAUNCHXL_I2SName;

/*!
*@def CC2640R2_LAUNCHXL_NVSName
*@NVS 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_NVSName{
#ifndef Board_exclude_NVS_INTERNAL_FLASH
CC2640R2_LAUNCHXL_NVSCC26XX0 = 0、
#endif
#ifndef Board_exclude_NVS_EXTERNAL_FLASH
CC2640R2_LAUNCHXL_NVSSPI25X0
、#endif

CC2640R2_LAUNCHXL_NVSCOUNT
}CC2640R2_LAUNCHXL_NVSName;

/*!
*@def CC2640R2_LAUNCHXL_PWM
*@PWM 输出的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_PWMName{
CC2640R2_LAUNCHXL_PWM0 = 0、
CC2640R2_LAUNCHXL_PWM1、
CC2640R2_LAUNCHXL_PWM2、
CC2640R2_LAUNCHXL_PWM3、
CC2640R2_LAUNCHXL_PWM4、
CC2640R2_LAUNCHXL_PWM5、
CC2640R2_LAUNCHXL_PWM6、
CC2640R2_LAUNCHXL_PWM7、

CC2640R2_LAUNCHXL_PWMCOUNT
}CC2640R2_LAUNCHXL_PWMName;

/*!
*@def CC2640R2_LAUNCHXL_SDName
*@SD 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_SDName{
CC2640R2_LAUNCHXL_SDSPI0 = 0、

CC2640R2_LAUNCHXL_SDCOUNT
}CC2640R2_LAUNCHXL_SDName;

/*!
*@def CC2640R2_LAUNCHXL_SPIName
*@SPI 名称的简短枚举
*/
typedef enum CC2640R2_LAUNCHXL_SPIName{
CC2640R2_LAUNCHXL_SPI0 = 0、
CC2640R2_LAUNCHXL_SPI1、

CC2640R2_LAUNCHXL_SPICOUNT
}CC2640R2_LAUNCHXL_SPIName;

/*!
*@def CC2640R2_LAUNCHXL_UARTName
*@UART 的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_UARTName{
CC2640R2_LAUNCHXL_UART0 = 0、

CC2640R2_LAUNCHXL_UARTCOUNT
}CC2640R2_LAUNCHXL_UARTName;

/*!
*@def CC2640R2_LAUNCHXL_UDMAName
*@DMA 缓冲器的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_UDMAName{
CC2640R2_LAUNCHXL_UDMA0 = 0、

CC2640R2_LAUNCHXL_UDMACOUNT
}CC2640R2_LAUNCHXL_UDMAName;

/*!
*@def CC2640R2_LAUNCHXL_WatchdogName
*@观察狗的简要枚举
*/
typedef enum CC2640R2_LAUNCHXL_WatchdogName{
CC2640R2_LAUNCHXL_WATCHDOG0 = 0、

CC2640R2_LAUNCHXL_WATCHDOGCOUNT
}CC2640R2_LAUNCHXL_WatchdogName;

#ifdef __cplusplus
}
#endif

#endif /*__CC2640R2_LAUNCHXL_Board_H_*

Board.h

/*
*版权所有(c) 2016-2019、德州仪器(TI)公司
*保留所有权利。
*
*以源代码和二进制形式重新分发和使用、有无
*如果满足以下条件、则允许进行修改
符合*:
*
**源代码的重新分发必须保留上述版权
*注意、此条件列表和以下免责声明。
*
**二进制形式的再发行必须复制上述版权
*请注意、中的此条件列表和以下免责声明
*随分发提供的文档和/或其他材料。
*
**德州仪器公司的名称和名称均不相同
*其贡献者可用于认可或推广衍生产品
*未经特定的事先书面许可。
*
*本软件由版权所有者和贡献者"按原样"提供
*以及任何明示或暗示的保证、包括但不限于:
*特定适销性和适用性的隐含保证
*不承认目的。 在任何情况下、版权所有者不得或
*派遣国应对任何直接、间接、偶然、特殊、
*典型或必然的损害(包括但不限于
*采购替代货物或服务;丧失使用、数据或利润;
*或业务中断)、无论原因是什么以及任何责任理论、
*无论是合同、严格责任还是侵权行为(包括疏忽或)
*否则)因使用本软件而以任何方式产生、
*即使被告知可能会发生此类损坏。
*

#ifndef __Board_H
#define __Board_H

#define Board_CC2640R2_LAUNCHXL

#ifdef __cplusplus
extern "C"{
#endif

#include

#define Board_initGeneral() Board_init()/*已弃用*/

#include "CC2640R2_LAUNCHXL.h"

#define Board_shutdownExtFlash () CC2640R2_LAUNCHXL_shutDownExtFlash ()
#define Board_wakeUpExtFlash () CC2640R2_LAUNCHXL_wakeUpExtFlash ()

/*这些#defines 允许我们在其他器件系列中重复使用 TI-RTOS *

#define Board_ADC0 CC2640R2_LAUNCHXL_ADC0
#define Board_ADC1 CC2640R2_LAUNCHXL_ADC1

#define Board_ADCBUF0 CC2640R2_LAUNCHXL_ADCBUF0
#define Board_ADCBUF0CHANNEL0 CC2640R2_LAUNCHXL_ADCBUF0CHANNEL0
#define Board_ADCBUF0CHANNEL1 CC2640R2_LAUNCHXL_ADCBUF0CHANNEL1

#define Board_CRYPTO0 CC2640R2_LAUNCHXL_CRYPTO0
#define Board_AESCM0 CC2640R2_LAUNCHXL_AESCM0
#define Board_AESGCM0 CC2640R2_LAUNCHXL_AESGCM0
#define Board_AESCMBC0 CC2640R2_LAUNCHXL_AESCMBC0
#define Board_AESCTR0 CC2640R2_LAUNCHXL_AESCTR0
#define Board_AESECB0 CC2640R2_LAUNCHXL_AESECB0
#define Board_AESCTRDRBG0 CC2640R2_LAUNCHXL_AESCTRDRBG0
#define Board_TRNG0 CC2640R2_LAUNCHXL_TRNG0

#define Board_DIO0 CC2640R2_LAUNCHXL_DIO0
#define Board_DIO1 CC2640R2_LAUNCHXL_DIO1 //已修改
//#define Board_DIO12 CC2640R2_LAUNCHXL_DIO12
//#define Board_DIO15 CC2640R2_LAUNCHXL_DIO15 //已修改
#define Board_DIO5_TDO CC2640R2_LAUNCHXL_DIO5_TDO
#define Board_DIO6_TDI CC2640R2_LAUNCHXL_DIO6_TDI
//#define Board_DIO21 CC2640R2_LAUNCHXL_DIO21 //已修改
//#define Board_DIO22 CC2640R2_LAUNCHXL_DIO22 //已修改

#define Board_DIO7_ANALOG CC2640R2_LAUNCHXL_DIO7_ANALOG
#define Board_DIO8_ANALOG CC2640R2_LAUNCHXL_DIO8_ANALOG
#define Board_DIO9_ANALOG CC2640R2_LAUNCHXL_DIO9_ANALOG
#define Board_DIO10_ANALOG CC2640R2_LAUNCHXL_DIO10_ANALOG
#define Board_DIO11_ANALOG CC2640R2_LAUNCHXL_DIO11_ANALOG
#define Board_DIO12 CC2640R2_LAUNCHXL_DIO12_ANALOG
#define Board_DIO13 CC2640R2_LAUNCHXL_DIO13_ANALOG
#define Board_DIO14 CC2640R2_LAUNCHXL_DIO14_ANALOG

//#define Board_GPIO_BUTTON0 CC2640R2_LAUNCHXL_GPIO_S1 //已修改
//#define Board_GPIO_Button1 CC2640R2_LAUNCHXL_GPIO_S2 //已修改
//#define Board_GPIO_BTN1 CC2640R2_LAUNCHXL_GPIO_S1 //已修改
//#define Board_GPIO_BTN2 CC2640R2_LAUNCHXL_GPIO_S2
//#define Board_GPIO_LED0 CC2640R2_LAUNCHXL_GPIO_LED_RED //已修改
//#define Board_GPIO_LED1 CC2640R2_LAUNCHXL_GPIO_LED_GREEN //已修改
//#define Board_GPIO_LED2 CC2640R2_LAUNCHXL_GPIO_LED_RED //已修改
//#define Board_GPIO_RLED CC2640R2_LAUNCHXL_GPIO_LED_RED //已修改
//#define Board_GPIO_GLED CC2640R2_LAUNCHXL_GPIO_LED_GREEN //已修改
//#define Board_GPIO_LED_ON CC2640R2_LAUNCHXL_GPIO_LED_ON //已修改
//#define Board_GPIO_LED_OFF CC2640R2_LAUNCHXL_GPIO_LED_OFF //已修改
#define Board_GPIO_TMP116_EN CC2640R2_LAUNCHXL_GPIO_TMP116_EN

#define BOARD_GPTIMER0A CC2640R2_LAUNCHXL_GPTIMER0A
#define BOARD_GPTIMER0B CC2640R2_LAUNCHXL_GPTIMER0B
#define BOARD_GPTIMER1A CC2640R2_LAUNCHXL_GPTIMER1A
#define BOARD_GPTIMER1B CC2640R2_LAUNCHXL_GPTIMER1B
#define BOARD_GPTIMER2A CC2640R2_LAUNCHXL_GPTIMER2A
#define BOARD_GPTIMER2B CC2640R2_LAUNCHXL_GPTIMER2B
#define BOARD_GPTIMER3A CC2640R2_LAUNCHXL_GPTIMER3A
#define BOARD_GPTIMER3B CC2640R2_LAUNCHXL_GPTIMER3B

#define Board_I2C0 CC2640R2_LAUNCHXL_I2C0
#define Board_I2C_TMP Board_I2C0

//#define Board_I2S0 CC2640R2_LAUNCHXL_I2S0 //已修改
//#define Board_I2S_ADO CC2640R2_LAUNCHXL_I2S_ADO //已修改
//#define Board_I2S_ADI CC2640R2_LAUNCHXL_I2S_ADI //已修改
////#define Board_I2S_BCLK CC2640R2_LAUNCHXL_I2S_BCLK //已修改
//#define Board_I2S_MCLK CC2640R2_LAUNCHXL_I2S_MCLK //已修改
//#define Board_I2S_WCLK CC2640R2_LAUNCHXL_I2S_WCLK //已修改

#define Board_NVSIONNAL CC2640R2_LAUNCHXL_NVSCC26XX0
#define Board_NVSEXTERNAL CC2640R2_LAUNCHXL_NVSSPI25X0

//#define Board_PIN_BUTTON0 CC2640R2_LAUNCHXL_PIN_BTN1 //已修改
//#define Board_PIN_Button1 CC2640R2_LAUNCHXL_PIN_BTN2 //已修改
//#define Board_PIN_BTN1 CC2640R2_LAUNCHXL_PIN_BTN1 //已修改
//#define Board_PIN_BTN2 CC2640R2_LAUNCHXL_PIN_BTN2 //已修改
//#define Board_PIN_LED0 CC2640R2_LAUNCHXL_PIN_RLED //已修改
//#define Board_PIN_LED1 CC2640R2_LAUNCHXL_PIN_GLED //已修改
//#define Board_PIN_LED2 CC2640R2_LAUNCHXL_PIN_RLED //已修改
//#define Board_PIN_RLED CC2640R2_LAUNCHXL_PIN_RLED //已修改
//#define Board_PIN_GLED CC2640R2_LAUNCHXL_PIN_GLED //已修改

#define Board_PWM0 CC2640R2_LAUNCHXL_PWM0
#define Board_PWM1 CC2640R2_LAUNCHXL_PWM1
#define Board_PWM2 CC2640R2_LAUNCHXL_PWM2
#define Board_PWM3 CC2640R2_LAUNCHXL_PWM3
#define Board_PWM4 CC2640R2_LAUNCHXL_PWM4
#define Board_PWM5 CC2640R2_LAUNCHXL_PWM5
#define Board_PWM6 CC2640R2_LAUNCHXL_PWM6
#define Board_PWM7 CC2640R2_LAUNCHXL_PWM7

#define Board_SD0 CC2640R2_LAUNCHXL_SDSPI0

#define Board_SPI0 CC2640R2_LAUNCHXL_SPI0
#define Board_SPI1 CC2640R2_LAUNCHXL_SPI1
#define BOARD_SPI_FLASH_CS CC2640R2_LAUNCHXL_SPI_FLASH_CS
#define Board_flash_CS_on 0
#define Board_FLASH_OFF 1.

#define BOARD_SPI_MASTER CC2640R2_LAUNCHXL_SPI0
#define Board_SPI_SLAVE CC2640R2_LAUNCHXL_SPI0
#define Board_SPI_MASTER_READY CC2640R2_LAUNCHXL_SPI_MASTER_READY
#define Board_SPI_SLAVE_READY CC2640R2_LAUNCHXL_SPI_SLAVE_READY

#define Board_UART0 CC2640R2_LAUNCHXL_UART0

#define Board_WATCHDOG0 CC2640R2_LAUNCHXL_WATCHDOG0

#ifdef __cplusplus

#endif

#endif /*__Board_H */

 

empty.c

/*
版权所有(c) 2015-2019、德州仪器(TI)公司
*保留所有权利。
*
*
只要
符合以下条件*、允许以源代码和二进制形式重新分发和使用:
*
*源代码的重新分发必须保留上述版权
声明*、此条件列表和以下免责声明。
*
***二进制形式的再发行必须在

*随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
*
***未经

事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*、

不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
*贡献者都不对任何直接、间接、偶然、特殊、
*模范、 或相应的损害(包括但不限于
*采购替代产品或服务;丧失使用、数据或利润;
*或业务中断)、但出于任何责任理论
、*无论是在合同中、严格责任还是由于
使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
、*即使已获悉可能会发生此类损坏。
//

/*
=== empty.c ======
//

//* for usleep()*/
#include 
#include 
#include 

/*驱动程序头文件*/
#include 
//#include 
//#include 
//#include 
//#include 

/*板头文件*/
#include "Board.h"

/*
=== mainThread ====
//
void * mainThread (void * arg0)
{
/* 1秒延迟*/
uint32_t 时间= 1;

/*调用驱动程序初始化函数*/
GPIO_init();
// I2C_init ();
// spi_init();
// uart_init();
// Watchdog_init();

//配置 LED 引脚*
// GPIO_setConfig (Board_GPIO_LED0、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);



//
PIN_Config output_GPIO_ON_IOID_0 []={
// //这是引脚 这些是配置选项
// CC2640R2_LAUNCHXL_DIO0 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE、
//
PIN_TERMINATE /*终止列表*/
// };

/*打开用户 LED *//
GPIO_write (Board_GPIO_LED0、Board_GPIO_LED_ON);

while (1){
睡眠(时间);
// GPIO_TOGGLE (IOID_0);
GPIO_setConfig (IOID_0、PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH);
}
}

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请按照以下链接中的文档创建定制板级配置文件、并在您的项目中更新此信息。 建议从 TI SDK 中与您使用的封装类型相匹配的板级配置文件开始、以避免引脚定义出现问题。 如果您在阅读本文档后仍然遇到问题、请告知我们。

    dev.ti.com/.../custom-hardware.html

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢主席先生的答复。

    我将 simplelink_cc2640r2_sdk_3_10_00_15与 CCS 9.0.1搭配使用。  我遵循了建议的文档中的说明。  

    1.更改了 CC2640R2_LAUNCHXL 板级配置文件并创建了 MYBOARD 文件。 并将 CC2640R2_LAUNCHXL 文件夹替换为 MYBOARD。 调试的代码没有任何错误、当我尝试运行它时、我没有获得任何输出。 我尝试了"empty"、"adcbufContinuous"示例。

    2.将"空"示例下载到我的工作空间中、在 CC2640R2LAUNCHXL.c、 CC2640R2LAUNCHXL.h、Board.h 文件中、我 对涉及定义、使用定制板中不存在的额外 DIO 引脚(大于 DIO14)的行进行了注释。 并为 UART (TX、RX)、JTAG_TDO、JTAG_TDI 分配了新的引脚。  调试的代码没有任何错误、当我尝试运行它时、我没有获得任何输出。  

    请帮助我对 CC2640R2FRHB 32引脚 IC 进行编程、以通过 BLE 传输模拟数据。

    感谢您的帮助... 进行预处理。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否能够解决此问题或是否仍需要帮助?

    此致、