主题中讨论的其他器件:CC2640、 TMP116
工具/软件: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); } }