工具/软件:Code Composer Studio
您好!
我使用的是 CC1310 RSM 封装4x4mm。
在该板上、我尝试运行 EasyLinkTx 示例。
该板通过2线 JTAG (TCK、TMS、RESET、GND 和3V3)连接到 Launchpad 上的 XDS110调试探针。
当我在 SmartRF Studio 中使用该板时、它工作正常。 软件会检测到它、我可以发送和接收数据包。
当我将程序刷写到定制板上时、不会发生任何情况。 我通过实验室电源以3.3V 电压为其加电、它显示了大约6mA 的电流消耗。
因此、我假设电路板加电、但不执行任何射频操作、因为电流非常稳定、而且我无法使用 SmartRF Studio 接收任何内容。
我已经根据定制硬件指南修改了板级配置文件。 将未使用的引脚设置为"PIN_UNLOAD"。
编辑:也许值得一提的是、我的定制板上没有32kHz 晶体。
/* 版权所有(c) 2015-2019、德州仪器(TI)公司 *保留所有权利。 * * 只要 符合以下条件*、允许以源代码和二进制形式重新分发和使用: * *源代码的重新分发必须保留上述版权 声明*、此条件列表和以下免责声明。 * ***二进制形式的再发行必须在 *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。 * ***未经 事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。 * *本软件由版权所有者和贡献者"按原样"提供 *、 不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或 *贡献者都不对任何直接、间接、偶然、特殊、 *模范、 或相应的损害(包括但不限于 *采购替代产品或服务;丧失使用、数据或利润; *或业务中断)、但出于任何责任理论 、*无论是在合同中、严格责任还是由于 使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他) 、*即使已获悉可能会发生此类损坏。 */ **================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ *@文件 CC1310_LAUNCHXL.h * *@简介 CC1310 LaunchPad 特定于电路板的头文件。 * *应用程序中应包含 CC1310_LAUNCHXL 头文件 ,如下所示: *@code *#include "CC1310_LAUNCHXL.h" *@endcode * *================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ // #ifndef __CC1310_LAUNCHXL_Board_H__ #define __CC1310_LAUNCHXL_Board_H__ #ifdef __cplusplus extern "C"{ #endif /*包括*/ #include #include /* extern */ extern const PIN_Config BoardGpioInitTable[]; /*定义*/ #define CC1310_LAUNCHXL/* 使用通用板别名将引脚映射到板信号 * */ /* Analog Capable Dios */ #define CC1310_LAUNCHXL_DIO23_ANALOG ioID_23 #define CC1310_LAUNCHXL_DIO24_ANALOG ioID_24 #define CC1310_LAUNCHXL_DIO25_ANALOG ioID_25 #define CC1310_LAUNCHXL_DIO26_ANALOG ioID_26 #define CC1310_LAUNCHXL_DIO27_ANALOG 未分配#define CC1310_LAUNCHXL_DIO28_ANALOG 未分配#define CC1310_LAUNCHXL_DIO29_ANALOG 未分配#define CC1310_LAUNCHXL_DIO30_ANALOG PIN_UNLOADD/* 数字 IO */ #define CC1310_LAUNCHXL_DIO0 ioID_8 #define CC1310_LAUNCHXL_DIO1 ioID_9 #define CC1310_LAUNCHXL_DIO12 PIN_UNLOADD #define CC1310_LAUNCHXL_DIO15 PIN_UNLOADD #define CC1310_LAUNCHXL_DIO16_TDO PIN_UNLOADD #define CC1310_LAUNCHXL_DIO17_TDI PIN_UNLOADD #define CC1310_LAUNCHXL_DIO21 PIN_UNLOADD #define CC1310_LAUNCHXL_DIO22 PIN_UNLOADD/* 离散输入*/ #define CC1310_LAUNCHXL_PIN_BTN1 ioID_22 #define CC1310_LAUNCHXL_PIN_BTN2 PIN_UNLOADD/* GPIO */ #define CC1310_LAUNCHXL_GPIO_LED_ON 1 #define CC1310_LAUNCHXL_GPIO_LED_OFF 0 /* I2C */ #define CC1310_LAUNCHXL_I2C0_SCL0 PIN_UNLOADed #define CC1310_LAUNCHXL_I2C0_SDA0 PIN_UNLOADD/* I2S */ #define CC1310_LAUNCHXL_I2S_ADO PIN_UNDESIGGLE#define CC1310_LAUNCHXL_I2S_ADI PIN_UNLOADed #define CC1310_LAUNCHXL_I2S_BCLK PIN_UNLOADed #define CC1310_LAUNCHXL_I2S_MCLK PIN_UNLOADed #define CC1310_LAUNCHXL_I2S_WCLK PIN_UNLOADD/* LED */ #define CC1310_LAUNCHXL_PIN_LED_ON 1 #define CC1310_LAUNCHXL_PIN_LED_OFF 0 #define CC1310_LAUNCHXL_PIN_RLED ioID_16 #define CC1310_LAUNCHXL_PIN_GLED PIN_UNLOADD/* PWM 输出*/ #define CC1310_LAUNCHXL_PWMPIN0 CC1310_LAUNCHXL_PIN_RLED #define CC1310_LAUNCHXL_PWMPIN1 PIN_UNLOADed #define CC1310_LAUNCHXL_PWMPIN2 未分配的引脚 #define CC1310_LAUNCHXL_PWMPIN3 PIN_UNLOADed #define CC1310_LAUNCHXL_PWMPIN4 PIN_UNLOADed #define CC1310_LAUNCHXL_PWMPIN5 PIN_UNLOADed #define CC1310_LAUNCHXL_PWMPIN6 PIN_UNLOADed #define CC1310_LAUNCHXL_PWMPIN7 PIN_UNLOADD/* SPI */ #define CC1310_LAUNCHXL_SPI_FLASH_CS PIN_UNLOADed #define CC1310_LAUNCHXL_FLASH_CS_ON 0 #define CC1310_LAUNCHXL_FLASH_CS_OFF 1 /* SPI 板*/ #define CC1310_LAUNCHXL_SPI0_MISO 未分配的 PIN_REGLED /* RF1.20 */ #define CC1310_LAUNCHXL_SPI0_MOSI 未分配的 PIN_REGLED /* RF1.18 */ #define CC1310_LAUNCHXL_SPI0_CLK 未分配的 PIN_REGLED /* RF1.16 */ #define CC1310_LAUNCHXL_SPI0_CSn PIN_UNLOADD #define CC1310_LAUNCHXL_SPI1_MISO PIN_UNLOADed #define CC1310_LAUNCHXL_SPI1_MOSI PIN_UNLOADed #define CC1310_LAUNCHXL_SPI1_CLK 未分配的引脚 #define CC1310_LAUNCHXL_SPI1_CSn PIN_UNLOADD/* UART 板*/ #define CC1310_LAUNCHXL_UART_RX 未分配的 PIN_REGLED /* RXD */ #define CC1310_LAUNCHXL_UART_TX 未分配的 PIN_REGLED /* TXD */ #define CC1310_LAUNCHXL_UART_CTS 未分配的 PIN_REGLED /* CTS */ #define CC1310_LAUNCHXL_UART_RTS 未分配的 PIN_REGLED /* RTS */* ! *@简要初始化通用板特定设置 * *此函数初始化通用板特定设置。 // void CC1310_LAUNCHXL_initGeneral (void); //! *@简要关闭 LaunchPad 上的外部闪存 * / void CC1310_LAUNCHXL_shutDownExtFlash (void); /*! *@简要唤醒板级配置文件上的外部闪存 * *此函数切换芯片选择所需的时间 *以唤醒芯片。 */ void CC1310_LAUNCHXL_wakeUpExtFlash (void); /*! *@def CC1310_LAUNCHXL_ADCBufName *@ADCBufs 的简要枚举 */ typedef enum CC1310_LAUNCHXL_ADCBufName{ CC1310_LAUNCHXL_ADCBUF0 = 0、 CC1310_LAUNCHXL_ADCBUFCOUNT }CC1310_LAUNCHXL_ADCBBufName; /*! *@def CC1310_LAUNCHXL_ADCBuf0SourceName *@ADCBuf 通道的简要枚举 */ typedef 枚举 CC1310_LAUNCHXL_ADCBuf0ChannelName{ CC1310_LAUNCHXL_ADCBUF0CHANNEL0 = 0、 CC1310_LAUNCHXL_ADCBUF0CHANNEL1、 CC1310_LAUNCHXL_ADCBUF0CHANNEL2、 CC1310_LAUNCHXL_ADCBUF0CHANNEL3、 CC1310_LAUNCHXL_ADCBUF0CHANNEL4、 CC1310_LAUNCHXL_ADCBUF0CHANNEL5、 CC1310_LAUNCHXL_ADCBUF0CHANNEL6、 CC1310_LAUNCHXL_ADCBUF0CHANNEL7、 CC1310_LAUNCHXL_ADCBUF0CHANNELVDDS、 CC1310_LAUNCHXL_ADCBUF0CHANNELDCOUPL、 CC1310_LAUNCHXL_ADCBUF0CHANNELVSS、 CC1310_LAUNCHXL_ADCBUF0CHANNELCOUNT }CC1310_LAUNCHXL_ADCBuf0ChannelName; /*! *@def CC1310_LAUNCHXL_ADCName *@ADC 的简要枚举 */ typedef 枚举 CC1310_LAUNCHXL_ADCName{ CC1310_LAUNCHXL_ADC0 = 0、 CC1310_LAUNCHXL_ADC1、 CC1310_LAUNCHXL_ADC2、 CC1310_LAUNCHXL_ADC3、 CC1310_LAUNCHXL_ADC4、 CC1310_LAUNCHXL_ADC5、 CC1310_LAUNCHXL_ADC6、 CC1310_LAUNCHXL_ADC7、 CC1310_LAUNCHXL_ADCDCOUPL、 CC1310_LAUNCHXL_ADCVSS、 CC1310_LAUNCHXL_ADCVDDS、 CC1310_LAUNCHXL_ADCCOUNT }CC1310_LAUNCHXL_ADCName; //! *@def CC1310_LAUNCHXL_CryptoName *@Crypto name 的简要枚举 */ typedef enum CC1310_LAUNCHXL_CryptoName{ CC1310_LAUNCHXL_CRYPTO0 = 0、 CC1310_LAUNCHXL_CRYPTOCOUNT }CC1310_LAUNCHXL_CryptoName; //! *@def CC1310_LAUNCHXL_AESCMName *@AESCMCM 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_AESCMName{ CC1310_LAUNCHXL_AESCM0 = 0、 CC1310_LAUNCHXL_AESCMCOUNT }CC1310_LAUNCHXL_AESCMName; /*! *@def CC1310_LAUNCHXL_AESGCMName *@AESGCM 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_AESGCMName{ CC1310_LAUNCHXL_AESGCM0 = 0、 CC1310_LAUNCHXL_AESGCMCOUNT }CC1310_LAUNCHXL_AESGCMName; /*! *@def CC1310_LAUNCHXL_AESCBCCName *@AESCBC 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_AESCBCMName{ CC1310_LAUNCHXL_AESCMBC0 = 0、 CC1310_LAUNCHXL_AESCCBCCOUNT }CC1310_LAUNCHXL_AESBCName; /*! *@def CC1310_LAUNCHXL_AESCTRName *@AESTR 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_AESCTRName{ CC1310_LAUNCHXL_AESCTR0 = 0、 CC1310_LAUNCHXL_AESCTRCOUNT }CC1310_LAUNCHXL_AESCTRName; //! *@def CC1310_LAUNCHXL_AESECBName *@AESECB 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_AESECBName{ CC1310_LAUNCHXL_AESECB0 = 0、 CC1310_LAUNCHXL_AESECBCOUNT }CC1310_LAUNCHXL_AESECBName; /*! *@def CC1310_LAUNCHXL_AESCTRDRBGName *@AESCTRDRBG 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_AESCTRDRBGName{ CC1310_LAUNCHXL_AESCTRDRBG0 = 0、 CC1310_LAUNCHXL_AESCTRDRBGCOUNT }CC1310_LAUNCHXL_AESCTRDRBGName; /*! *@def CC1310_LAUNCHXL_TRNGName *@TRNG 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_TRNGName{ CC1310_LAUNCHXL_TRNG0 = 0、 CC1310_LAUNCHXL_TRNGCOUNT }CC1310_LAUNCHXL_TRNGName; //! *@def CC1310_LAUNCHXL_GPIOName *@GPIO 名称的简短枚举 */ typedef 枚举 CC1310_LAUNCHXL_GPIOName{ CC1310_LAUNCHXL_GPIO_S1 = 0、 CC1310_LAUNCHXL_GPIO_S2、 CC1310_LAUNCHXL_SPI_MASTER_READY、 CC1310_LAUNCHXL_SPI_SLAVE_READY、 CC1310_LAUNCHXL_GPIO_LED_GREEN、 CC1310_LAUNCHXL_GPIO_LED_RED、 CC1310_LAUNCHXL_GPIO_TMP116_EN、 CC1310_LAUNCHXL_GPIO_SPI_FLASH_CS、 CC1310_LAUNCHXL_SDSPI_CS、 CC1310_LAUNCHXL_GPIO_LCD_CS、 CC1310_LAUNCHXL_GPIO_LCD_POWER、 CC1310_LAUNCHXL_GPIO_LCD_ENABLE、 CC1310_LAUNCHXL_GPIOCOUNT }CC1310_LAUNCHXL_GPIOName; //! *@def CC1310_LAUNCHXL_GPTimerName *@GPTimer 部件的简要枚举 */ typedef 枚举 CC1310_LAUNCHXL_GPTimerName{ CC1310_LAUNCHXL_GPTIMER0A = 0、 CC1310_LAUNCHXL_GPTIMER0B、 CC1310_LAUNCHXL_GPTIMER1A、 CC1310_LAUNCHXL_GPTIMER1B、 CC1310_LAUNCHXL_GPTIMER2A、 CC1310_LAUNCHXL_GPTIMER2B、 CC1310_LAUNCHXL_GPTIMER3A、 CC1310_LAUNCHXL_GPTIMER3B、 CC1310_LAUNCHXL_GPTIMERPARTSCOUNT }CC1310_LAUNCHXL_GPTimerName; /*! *@def CC1310_LAUNCHXL_GPTimers *@GPTimers 的简要枚举 */ typedef enum CC1310_LAUNCHXL_GPTimers{ CC1310_LAUNCHXL_GPTIMER0 = 0、 CC1310_LAUNCHXL_GPTIMER1、 CC1310_LAUNCHXL_GPTIMER2、 CC1310_LAUNCHXL_GPTIMER3、 CC1310_LAUNCHXL_GPTIMERCOUNT }CC1310_LAUNCHXL_GPTimers; //! *@def CC1310_LAUNCHXL_I2CName *@I2C 名称的简短枚举 */ typedef 枚举 CC1310_LAUNCHXL_I2CName{ CC1310_LAUNCHXL_I2C0 = 0、 CC1310_LAUNCHXL_I2CCOUNT }CC1310_LAUNCHXL_I2CName; //! *@def CC1310_LAUNCHXL_I2SName *@I2S 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_I2SName{ CC1310_LAUNCHXL_I2S0 = 0、 CC1310_LAUNCHXL_I2SCOUNT }CC1310_LAUNCHXL_I2SName; /*! *@def CC1310_LAUNCHXL_NVSName *@NVS 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_NVSName{ #ifndef Board_exclude_NVS_INTERNAL_FLASH CC1310_LAUNCHXL_NVSCC26XX0 = 0、 #endif #ifndef Board_exclude_NVS_EXTERNAL_FLASH CC1310_LAUNCHXL_NVSSPI25X0、 #endif CC1310_LAUNCHXL_NVSCOUNT }CC1310_LAUNCHXL_NVSName; /*! *@def CC1310_LAUNCHXL_PWM *@PWM 输出的简要枚举 */ typedef enum CC1310_LAUNCHXL_PWMName{ CC1310_LAUNCHXL_PWM0 = 0、 CC1310_LAUNCHXL_PWM1、 CC1310_LAUNCHXL_PWM2、 CC1310_LAUNCHXL_PWM3、 CC1310_LAUNCHXL_PWM4、 CC1310_LAUNCHXL_PWM5、 CC1310_LAUNCHXL_PWM6、 CC1310_LAUNCHXL_PWM7、 CC1310_LAUNCHXL_PWMCOUNT }CC1310_LAUNCHXL_PWMName; /*! *@def CC1310_LAUNCHXL_SDName *@SD 名称的简短枚举 */ typedef enum CC1310_LAUNCHXL_SDName{ CC1310_LAUNCHXL_SDSPI0 = 0、 CC1310_LAUNCHXL_SDCOUNT }CC1310_LAUNCHXL_SDName; /*! *@def CC1310_LAUNCHXL_SPIName *@SPI 名称的简短枚举 */ typedef 枚举 CC1310_LAUNCHXL_SPIName{ CC1310_LAUNCHXL_SPI0 = 0、 CC1310_LAUNCHXL_SPI1、 CC1310_LAUNCHXL_SPICOUNT }CC1310_LAUNCHXL_SPIName; /*! *@def CC1310_LAUNCHXL_UARTName *@UART 的简要枚举 */ typedef 枚举 CC1310_LAUNCHXL_UARTName{ CC1310_LAUNCHXL_UART0 = 0、 CC1310_LAUNCHXL_UARTCOUNT }CC1310_LAUNCHXL_UARTName; //! *@def CC1310_LAUNCHXL_UDMAName *@DMA 缓冲器的简要枚举 */ typedef 枚举 CC1310_LAUNCHXL_UDMAName{ CC1310_LAUNCHXL_UDMA0 = 0、 CC1310_LAUNCHXL_UDMACOUNT }CC1310_LAUNCHXL_UDMAName; //! *@def CC1310_LAUNCHXL_WatchdogName *@观察狗的简要枚举 */ typedef enum CC1310_LAUNCHXL_WatchdogName{ CC1310_LAUNCHXL_WATCHDOG0 = 0、 CC1310_LAUNCHXL_WATCHDOGCOUNT }CC1310_LAUNCHXL_WatchdogName; #ifdef __cplusplus } #endif #endif /*__CC1310_LAUNCHXL_Board_H_*
/*
版权所有(c) 2015-2019、德州仪器(TI)公司
*保留所有权利。
*
*
只要
符合以下条件*、允许以源代码和二进制形式重新分发和使用:
*
*源代码的重新分发必须保留上述版权
声明*、此条件列表和以下免责声明。
*
***二进制形式的再发行必须在
*随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
*
***未经
事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*、
不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
*贡献者都不对任何直接、间接、偶然、特殊、
*模范、 或相应的损害(包括但不限于
*采购替代产品或服务;丧失使用、数据或利润;
*或业务中断)、但出于任何责任理论
、*无论是在合同中、严格责任还是由于
使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
、*即使已获悉可能会发生此类损坏。
*/
/*
========================= CC1310_LAUNCHXL.c ================================================
*此文件负责为
* CC1310_LAUNCHXL 板设置特定于电路板的项目。
*/
#include
#include
#include
#include
#include
#include
#include
#include "CC1310_LAUNCHXL.h"
/*
======================================== ADCBuf ================================================
*/
#include
#include
ADCBufCC26XX_Object adcBufCC26xxObjects[CC1310_LAUNCHXL_ADCBUFCOUNT];
//
*此表将虚拟 ADC 通道转换为 dio 和内部模拟
*输入信号。 此表是 adcBuf
*驱动程序运行所必需的。 注释掉未使用的条目以保存闪存。 DIO 和内部信号
*对硬接线。 不要在表中重新映射它们。 您可以对整个
*条目重新排序。 dio 和内部信号的映射取决于封装。
//
const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLutlut[CC1310_LAUNCHXL_ADCBUF0CHANNELCOUNT]={
//{CC1310_LAUNCHXL_DIO23_ANALOG、ADC_COMPB_IN}、AUX7}
{CC1310_LAUNCHXL_DIO24_ANALOG、ADC_COMPB_IN_AUXIO6}、
{CC1310_LAUNCHXL_DIO25_ANALOG、ADC_COMPB_IN_AUXIO5}、
{CC1310_LAUNCHXL_DIO26_ANALOG、ADC_COMPB_IN_AUXIO4}、
{CC1310_LAUNCHXL_DIO27_ANALOG、ADC_COMPB_IN_AUXIO3}、
{CC1310_LAUNCHXL_DIO28_ANALOG、ADC_COMPB_IN_AUXIO2}、
{CC1310_LAUNCHXL_DIO29_ANALOG、ADC_COMPB_IN_AUXIO1}、
{CC1310_LAUNCHXL_DIO30_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[CC1310_LAUNCHXL_ADCBUFCOUNT]={
{
.intPriority =~0、
.wiPriority = 0、
.adcChannelLut = ADCBufCC26XX_adcChannelLut
、}
};
const ADCBuf_Config ADCBuf_config[CC1310_LAUNCHXL_ADCBUFCOUNT]={
{
ADCBufCC26XX_fxnTable (&A)、
&adcBufCC26xx 对象[CC1310_LAUNCHXL_ADCBUF0]、
adcBufCC26xxHWAttrs[CC1310_LAUNCHXL_ADCBUF0]
}、
};
const uint_least8_t ADCBBuf_count = CC1310_LAUNCHXL_ADCBUFCOUNT;
/*
================================================= ADC ================================================
*/
#include
#include
ADCCC26XX_Object adcCC26xxObjects[CC1310_LAUNCHXL_ADCCOUNT];
const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADCCOUNT]={
{
.adcDIO = CC1310_LAUNCHXL_DIO23_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 = CC1310_LAUNCHXL_DIO24_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 = CC1310_LAUNCHXL_DIO25_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 = CC1310_LAUNCHXL_DIO26_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 = CC1310_LAUNCHXL_DIO27_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 = CC1310_LAUNCHXL_DIO28_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 = CC1310_LAUNCHXL_DIO29_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 = CC1310_LAUNCHXL_DIO30_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[CC1310_LAUNCHXL_ADCCOUNT]={
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC0]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC0]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC1]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC1]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC2]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC2]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC3]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC3]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC4]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC4]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC5]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC5]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC6]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC6]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADC7]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADC7]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC1310_LAUNCHXL_ADCDCOUPL]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADCDCOUPL]}、
{&ADCCC26XX_fxnTable、&adcCC26xx 对象[CC1310_LAUNCHXL_ADCVSS]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADCVSS]}、
{&ADCCC26XX_fxnTable、&adcCC26xxObjects[CC1310_LAUNCHXL_ADCVDDS]、&adcCC26xxHWAttrs[CC1310_LAUNCHXL_ADCVDDS]}、
};
const uint_least8_t ADC_COUNT = CC1310_LAUNCHXL_ADC===*=============================ADC=========================.&;=&=
Crypto ================================================
//
/*#include
CryptoCC26XX_Object cryptoCC26XX Objects[CC1310_LAUNCHXL_CRYPTOCOUNT];
const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC1310_LAUNCHXL_CRYPTOCOUNT]={
{
baseAddr = crypto_BASE、
powerMngrId = PowerCC26XX_Periph_crypto、
.intNum = INT_crypto_result_ave_IRQ、
.intPriority =~0、
}
};
const CryptoCC26XX_Config CryptoCC26XX_config[CC1310_LAUNCHXL_CRYPTOCOUNT]={
{
.object =加密 CC26XX 对象[CC1310_LAUNCHXL_CRYPTO0]、
hwAttrs =&cryptoCC26XXXXHWAttrs[CC1310_LAUNCHXL_CRYPTO0]
}
};
*/
/*
============ AESCM=========================================
*/
#include
#include
AESCMCC26XX_Object aesccmCC26XX Objects[CC1310_LAUNCHXL_AESCMCOUNT];
const AESCMCC26XX_HWAttrs aesccmCC26XXHWAttrs[CC1310_LAUNCHXL_AESCMCOUNT]={
{
.intPriority =~0
、}
};
const AESCM_Config AESCM_CONFIG[CC1310_LAUNCHXL_AESCMCOUNT]={
{
.object = aesccmCC26XX 对象[CC1310_LAUNCHXL_AESCM0]、
hwAttrs =&aesccmCC26XXXXHWAttrs[CC1310_LAUNCHXL_AESCM0]
}、
};
const uint_least8_t AESCM_COUNT = CC1310_LAUNCHXL_AESCMCOUNT;
/*
================================================= AESGCM =========================================
*/
#include
#include
AESGCMCC26XX_Object aesgcmCC26XX Objects[CC1310_LAUNCHXL_AESGCMCOUNT];
const AESGCMCC26XX_HWAttrs aesgcmCC26XXXHWAttrs[CC1310_LAUNCHXL_AESGCMCOUNT]={
{
.intPriority =~0
、}
};
const AESGCM_Config AESGCM_CONFIG[CC1310_LAUNCHXL_AESGCMCOUNT]={
{
.object = aesgcmCC26XX 对象[CC1310_LAUNCHXL_AESGCM0]、
hwAttrs =&aesgcmCC26XXXXHWAttrs[CC1310_LAUNCHXL_AESGCM0]
},
};
const uint_least8_t AESGCM_COUNT = CC1310_LAUNCHXL_AESGCMCOUNT;
/*
========================================================= AESCBC ================================================
*/
#include
#include
AESCBCCC26XX_Object aesccCC26XX Objects[CC1310_LAUNCHXL_AESCBCOUNT];
CONST AESCBCCC26XX_HWAttrs aescbCC26XXXHWAttrs[CC1310_LAUNCHXL_AESCMCUNT]={
{
.intPriority =~0
、}
};
const AESCBC_Config AESCBC_CONFIG[CC1310_LAUNCHXL_AESCBCOUNT]={
{
.object = aescbcCC26XX 对象[CC1310_LAUNCHXL_AESCBC0]、
hwAttrs =&aescbcCC26XXXXHWAttrs[CC1310_LAUNCHXL_AESCB0]
}、
};
const uint_least8_t AESCBC_COUNT = CC1310_LAUNCHXL_AESCBCCOUNT;
/*
================================================= AESCTR ========================================
*/
#include
#include
AESCTRCC26XX_Object aesctrCC26XX Objects[CC1310_LAUNCHXL_AESCTRCOUNT];
const AESCTRCC26XX_HWAttrs aesctrCC26XXHWAttrs[CC1310_LAUNCHXL_AESCTRCOUNT]={
{
.intPriority =~0
、}
};
const AESCTR_Config AESCTR_CONFIG[CC1310_LAUNCHXL_AESCTRCOUNT]={
{
.object = aesctrCC26XX 对象[CC1310_LAUNCHXL_AESCTR0]、
hwAttrs =&aesctrCC26XXXXHWAttrs[CC1310_LAUNCHXL_AESCTR0]
}、
};
const uint_least8_t AESCTR_COUNT = CC1310_LAUNCHXL_AESCTRCOUNT;
/*
=================================== AESECB ================================================
*/
#include
#include
AESECBCC26XX_Object aesecbCC26XX Objects[CC1310_LAUNCHXL_AESECBCOUNT];
const AESECBCC26XX_HWAttrs aesecbCC26XXHWAttrs[CC1310_LAUNCHXL_AESECBCOUNT]={
{
.intPriority =~0
、}
};
const AESECB_Config AESECB_CONFIG[CC1310_LAUNCHXL_AESECBCOUNT]={
{
.object = aesecbCC26XX 对象[CC1310_LAUNCHXL_AESECB0]、
hwAttrs =&aesecbCC26XXXXHWAttrs[CC1310_LAUNCHXL_AESECB0]
},
};
const uint_least8_t AESECB_COUNT = CC1310_LAUNCHXL_AESECBCOUNT;
/*
================================================= AESCTRDRBG ========================================================
*/
#include
#include
AESCTRDRBGXX_Object aesctrdrbgXXObjects[CC1310_LAUNCHXL_AESCTRDRBGCOUNT];
const AESCTRDRBGXX_HWAttrs aesctrbgXHUBXWAttrs[CC1310_LAUNCHXL_AESCTRDESCGCUNT]={
{
a.esctrIndex = CC1310_LAUNCHXL_AESCTR0
、}
};
CONST AESCTRDRBG_Config AESCTRDRBG_CONFIG[CC1310_LAUNCHXL_AESCTRDRBGCOUNT]={
{
.object =&aesctrdrbgXX 对象[CC1310_LAUNCHXL_AESCTRDRBG0]、
hwAttrs =&aesctrdrbgXXHWAttrs[CC1310_LAUNCHXL_AESCTRDRBG0]
},
};
const uint_least8_t AESCTRDRBG_COUNT = CC1310_LAUNCHXL_AESCTRDRBGCOUNT;
/*
================================================= 培训================================================
*/
#include
#include
TRNGCC26XX_Object trngCC26XX Objects[CC1310_LAUNCHXL_TRNGCOUNT];
const TRNGCC26XX_HWAttrs trngCC26X2HWAttrs[CC1310_LAUNCHXL_TRNGCOUNT]={
{
.intPriority =~0、
.wiPriority = 0、
.samplesPerCycle = 240000
、}
};
const TRNG_Config TRNG_CONFIG[CC1310_LAUNCHXL_TRNGCOUNT]={
{
.object =&trngCC26XX 对象[CC1310_LAUNCHXL_TRNG0]、
hwAttrs =&trngCC26X2HWAttrs[CC1310_LAUNCHXL_TRNG0]
}、
};
const uint_least8_t TRNG_COUNT = CC1310_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 = CC1310_LAUNCHXL_UART0、
波特率 = 115200、
.mutexTimeout =(unsigned int)(-1)、
strBuf = uartStringBuf、
strBufLen = Board_display_UART_STRBUF_size、
};
const DisplaySharp HWAttrsV1 displaySharpHWattrs ={
spiIndex = CC1310_LAUNCHXL_SPI0、
csPin = CC1310_LAUNCHXL_GPIO_LCD_CS、
powerPin = CC1310_LAUNCHXL_GPIO_LCD_POWER、
.enablePin = CC1310_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
/*
引脚配置数组
*注意:引脚配置的顺序必须与之前
的顺序一致* 在 CC1310_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、// CC1310_LAUNCHXL_SPI_MASTER_READY *
GPIOCC26XX_DIO_21 | GPIO_DO_NOT _CONFIG、// CC1310_LAUNCHXL_SPI_SLAVE_READY *
/*输出引脚*/
GPIOCC26XX_DIO_07 | GPIO_DO_NOT _CONFIG、/*绿色 LED *
GPIOCC26XX_DIO_06 | GPIO_DO_NOT _CONFIG、/*红色 LED *
GPIOCC26XX_DIO_30 | GPIO_DO_NOT _CONFIG、// TMP116_EN *
/* SPI 闪存 CSn *
GPIOCC26XX_DIO_20 | GPIO_DO_NOT _CONFIG、
/* SD CS */
GPIOCC26XX_DIO_21 | GPIO_DO_NOT _CONFIG、
/* Sharp Display - GPIO 配置将在 Display 文件中完成*/
GPIOCC26XX_DIO_24 | GPIO_DO_NOT _CONFIG、/* SPI 芯片选择*
GPIOCC26XX_DIO_22 | GPIO_DO_NOT _CONFIG、/* LCD 电源控制*
GPIOCC26XX_DIO_23 | GPIO_DO_NOT_CONFIG、/* LCD enable */
};
//
*回调函数指针数组
*注意:引脚配置的顺序必须与之前
的顺序一致* 在 CC1310_LAUNCH.h 中定义
*注意:不用于中断的引脚可从回调数组中省略至
* 减少内存使用(如果放置在 gpioPinConfigs 数组的末尾)。
*/
GPIO_CallbackFxn gpioCallbackFunctions[]={
空,/*按钮0 */
空,/*按钮1 */
空、// CC1310_LAUNCHXL_SPI_MASTER_READY */
空、//* CC1310_LAUNCHXL_SPI_SLAVE_READY */
};
const GPIOCC26XX_Config GPIOCC26XX_CONFIG ={
.pinConfigs =(GPIO_PinConfig *) gpioPinConfigs、
.callback =(GPIO_CallbackFxn *) gpioCallbackFuncions、
numberOfPinConfigs = CC1310_LAUNCHXL_GPIOCOUNT、
numberOfCallbacks = sizeof (gpioCallbackFuncions)/sizeof (GPIO_CallbackFxn)、
.intPriority =(~0)
};
/*
========================================= GPTimer ================================================
*删除 Board.c 和 Board.h
中未使用的条目以减少闪存的使用*/
#include
GPTimerCC26XX_Object gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMERCOUNT];
const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMERPARTSCOUNT]={
{.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[CC1310_LAUNCHXL_GPTIMERPARTSCOUNT]={
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER0]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER0A]、GPT_A}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER0]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER0B]、GPT_B}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER1]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER1A]、GPT_A}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER1]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER1B]、GPT_B}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER2]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER2A]、GPT_A}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER2]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER2B]、GPT_B}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER3]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER3A]、GPT_A}、
{&gptimerCC26XX 对象[CC1310_LAUNCHXL_GPTIMER3]、&gptimerCC26xxHWAttrs[CC1310_LAUNCHXL_GPTIMER3B]、GPT_B}、
};
/*
*=================== I2C ================================================
*/
#include
#include
I2CCC26XX_Object i2cCC26xxObjects[CC1310_LAUNCHXL_I2CCOUNT;
const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC1310_LAUNCHXL_I2CCOUNT ={
{
baseAddr = I2C0_BASE、
powerMngrId = PowerCC26XX_Periph_I2C0、
.intNum = INT_I2C_IRQ、
.intPriority =~0、
.wiPriority = 0、
sdaPin = CC1310_LAUNCHXL_I2C0_SDA0、
.sclPin = CC1310_LAUNCHXL_I2C0_SCL0
、}
};
const I2C_Config I2C_CONFIG[CC1310_LAUNCHXL_I2CCOUNT ={
{
.fxnTablePtr =&I2CCC26XX_fxnTable、
.object =&i2cCC26xx 对象[CC1310_LAUNCHXL_I2C0]、
hwAttrs =&i2cCC26xxHWAttrs[CC1310_LAUNCHXL_I2C0]
}
};
const uint_least8_t I2C_count = CC1310_LAUNCHXL_I2CCOUNT;
//
*=========================== I2S ========================================================
*/
#include
#include
I2SCC26XX_Object i2sCC26XX Objects[CC1310_LAUNCHXL_I2SCOUNT];
const I2SCC26XX_HWAttrs i2sCC26XXHWAttrs[CC1310_LAUNCHXL_I2SCOUNT]={
{
pinSD1 = CC1310_LAUNCHXL_I2S_ADI、
pinSD0 = CC1310_LAUNCHXL_I2S_ADO、
引脚 SCK = CC1310_LAUNCHXL_I2S_BCLK、
引脚 MCLK = CC1310_LAUNCHXL_I2S_MCLK、
.pinWS = CC1310_LAUNCHXL_I2S_WCLK、
.intPriority =~0、
}
};
const I2S_Config I2S_CONFIG[CC1310_LAUNCHXL_I2SCOUNT]={
{
.object =&i2sCC26XX 对象[CC1310_LAUNCHXL_I2S0]、
hwAttrs =&i2sCC26XXXHWAttrs[CC1310_LAUNCHXL_I2S0]
}、
};
const uint_least8_t I2S_count = CC1310_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 = CC1310_LAUNCHXL_GPIO_SPI_FLASH_CS、
.statusPollDelayU = 100、
}、
};
#endif // Board_exclude_NVS_EXTERNAL_FLASH *//
////* NVS 区域索引0和1分别指 NVS 和 NVS SPI */
const NVS_Config NVS_CONFIG[CC1310_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 = CC1310_LAUNCHXL_NVSCOUNT;
/*
==== Pin ========================================================
*/
#include
#include
const PIN_Config BoardGpioInitTable[]={
CC1310_LAUNCHXL_PIN_RLED | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、 /* LED 最初关闭 *
CC1310_LAUNCHXL_PIN_GLED | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、 /* LED 最初关闭 *
CC1310_LAUNCHXL_PIN_BTN1 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_迟滞、 /*按钮为低电平有效 *
CC1310_LAUNCHXL_PIN_BTN2 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_迟滞、 /*按钮为低电平有效 *
CC1310_LAUNCHXL_SPI_FLASH_CS | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MIN、/*外部闪存芯片选择*
CC1310_LAUNCHXL_UART_RX | PIN_INPUT_EN | PIN_PUL拉、 /*通过调试器反向通道的 UART RX */
CC1310_LAUNCHXL_UART_TX | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull、 /*通过调试器反向通道的 UART TX */
CC1310_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN、 /* SPI 主器件输出-从器件输入*/
CC1310_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN、 /* SPI 主器件输入-从器件输出*/
CC1310_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN、 /* SPI 时钟*/
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[CC1310_LAUNCHXL_PWMCOUNT];
const PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWMCOUNT]={
{.pwmPin = CC1310_LAUNCHXL_PWMPIN0、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER0A}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN1、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER0B}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN2、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER1A}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN3、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER1B}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN4、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER2A}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN5、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER2B}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN6、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER3A}、
{.pwmPin = CC1310_LAUNCHXL_PWMPIN7、.gpTimerUnit = CC1310_LAUNCHXL_GPTIMER3B}、
};
const PWM_Config PWM_CONFIG[CC1310_LAUNCHXL_PWMCOUNT]={
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM0]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM0]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM1]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM1]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM2]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM2]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM3]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM3]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM4]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM4]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM5]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM5]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xx 对象[CC1310_LAUNCHXL_PWM6]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM6]}、
{&PWMTimerCC26XX_fxnTable、&pwmtimerCC26xxObjects[CC1310_LAUNCHXL_PWM7]、&pwmtimerCC26xxHWAttrs[CC1310_LAUNCHXL_PWM7]}、
};
const uint_least8_t PWM_==*======LAUNCHXL_======COUNT=======================_PWM1310=_PWM=_PWM=_PWM=.=.=.=.=.=.=.=.=.=
射频驱动程序========================================
*/
#include
const RFCC26XX_HWAttrsV2 RFCC26XX_hwAttrs ={
.hwiPriority =~0、 /*最低 HWI 优先级*/
.wiPriority = 0、 /*最低 SWI 优先级*/
.xoscHfAlwaysNeeded = true、 /*在待机状态下保持 XOSC 依赖性*/
globalCallback =空、 /*无特定于电路板的回调*/
globalEventMask = 0 /*没有订阅的事件*/
};
/*
========================================= sd ================================================
*/
#include
#include
SDSPI_Object sdspiObjects[CC1310_LAUNCHXL_SDCOUNT];
const SDSPI_HWAttrs sdspiHWAttrs[CC1310_LAUNCHXL_SDCOUNT]={
{
spiIndex = CC1310_LAUNCHXL_SPI0、
spiCssGpioIndex = CC1310_LAUNCHXL_SDSPI_CS
}
};
const SD_Config SD_config[CC1310_LAUNCHXL_SDCOUNT]={
{
.fxnTablePtr =&SDSPI_fxnTable、
.object =&sdspiObjects[CC1310_LAUNCHXL_SDSPI0]、
hwAttrs =&sdspiHWAttrs[CC1310_LAUNCHXL_SDSPI0]
}、
};
const uint_least8_t sd_count = CC1310_LAUNCHXL_SDCOUNT;
//
*================================================= SPI DMA ================================================
*/
#include
#include
SPICC26XXDMA_Object spiCC26XXDMAObjects[CC1310_LAUNCHXL_SPICOUNT];
//
*注意:SD 驱动程序可使用以下 SPI 实例
通过 SPI 与 SD 卡进行通信*。 下面的'DEFaultTxBufValue'字段被设定为0xFF
*以满足 SDSPI 驱动程序要求。
*/
const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC1310_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 = CC1310_LAUNCHXL_SPI0_MOSI、
MISO 引脚 = CC1310_LAUNCHXL_SPI0_MISO、
clkPin = CC1310_LAUNCHXL_SPI0_CLK、
.csn 引脚 = CC1310_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[CC1310_LAUNCHXL_UARTCOUNT];
uint8_t uartCC26XXRingBuffer[CC1310_LAUNCHXL_UARTCOUNT][32];
const UARTCC26XX_HWAttrsV2 uartCC26XHATTRXHUNT[UART_LAUNCTX10_UART]
{
baseAddr = UART0_BASE、
powerMngrId = PowerCC26XX_Periph_UART0、
.intNum = INT_UART0_COMB、
.intPriority =~0、
.wiPriority = 0、
txPin = CC1310_LAUNCHXL_UART_TX、
.rxPin = CC1310_LAUNCHXL_UART_RX、
ctsPin = PIN_Unassigned、
rtsPin = PIN_Unassigned、
.ringBufPtr = uartCC26XXRingBuffer[CC1310_LAUNCHXL_UART0]、
.ringBufSize = sizeof (uartCC26XXRingBuffer[CC1310_LAUNCHXL_UART0])、
TxIntFifoThr = UARTCC26XX_FIFO_THRESHOLD_1_8、
.rxIntFifoThr = UARTCC26XX_FIFO_THRESHOLD_4_8、
errorFxn =空
}
};
const UART_Config UART_CONFIG[CC1310_LAUNCHXL_UARTCOUNT]={
{
.fxnTablePtr =&UARTCC26XX_fxnTable、
.object = uartCC26XX 对象[CC1310_LAUNCHXL_UART0]、
hwAttrs = uartCC26XXXHUWAttrs[CC1310_LAUNCHXL_UART0]
}、
};
const uint_least8_t UART_count = CC1310_LAUNCHXL_UARTCOUNT;
/*
================================================= uDMA ================================================
*/
#include
UDMACC26XX_Object udmaObjects[CC1310_LAUNCHXL_UDMACOUNT];
const UDMACC26XX_HWAttrs udmaHWAttrs[CC1310_LAUNCHXL_UDMACOUNT]={
{
baseAddr = UDMA0_BASE、
powerMngrId = PowerCC26XX_Periph_UDMA、
.intNum = INT_DMA_ERR、
.intPriority =~0
}
};
const UDMACC26XX_Config UDMACC26XX_CONFIG[CC1310_LAUNCHXL_UDMACOUNT]={
{
.object =&udmaObjects[CC1310_LAUNCHXL_UDMA0]、
hwAttrs =&udmaHWAttrs[CC1310_LAUNCHXL_UDMA0]
}、
};
/*
========================================= 看门狗=========================================
*/
#include
#include
WatchdogCC26XX_Object WatchdogCC26XX Objects[CC1310_LAUNCHXL_WATCHDOGCOUNT];
const WatchdogCC26XX_HWAttrs watchdogCC26XHWAITtrs[CC1310_LAUNCHXL_WATCHDOGCOUNT]={
{
baseAddr = WDT_BASE、
.reloadValue = 1000 //重新加载值(以毫秒为单位)*/
}、
};
const Watchdog_Config Watchdog_config[CC1310_LAUNCHXL_WATCHDOGCOUNT]={
{
fxnTablePtr =&WatchdogCC26XX_fxnTable、
.object =&watchdogCC26XX 对象[CC1310_LAUNCHXL_WATCHDOG0]、
hwAttrs =&watchdogCC26XXHWAttrs[CC1310_LAUNCHXL_WATCHDOG0]
}、
};
const uint_least8_t Watchdog_count = CC1310_LAUNCHXL_WATCHDOGCOUNT;
//
*特定于电路板的初始化函数以禁用外部闪存。
*此函数在文件 CC1310_LAUNCHXL_Fxns.c
中定义*/
extern void Board_initHook (void);
/*
=== CC1310_LAUNCHXL_initGeneral ===
*/
void CC1310_LAUNCHXL_initGeneral (void)
{
power_init();
if (PIN_init (BoardGpioInitTable)!= PIN_SUCCESS){
/* PIN_init 错误*/
while (1);
}
/*执行特定于电路板的初始化*/
Board_initHook();
}
/*
==== Board_init ====
*/
void Board_init (void)
{
CC1310_LAUNCHXL_initGeneral();
}
