CC3220LaunchPad开发板使用
Created for the Internet of Things (IoT), the SimpleLink Wi-Fi CC3220 device is a single-chip microcontroller (MCU) with built-in Wi-Fi connectivity for the LaunchPad ecosystem, that integrates a highperformance ARM Cortex-M4 MCU allowing customers to develop an entire application with one device.With on-chip Wi-Fi, Internet, and robust security protocols, no prior Wi-Fi experience is required for fast development。这是官方的介绍。
对于CC3220来说,要借助官方的SDK开发可以达到事半功倍的效果。
在SDK内有一个empty工程,每次新建自己的项目时,基于这个empty工程来开发方便很多。
打开CCS->指定工作空间路径->project->import ccs project->找到sdk的安装路径(默认安装路径为C:\ti\simplelink_cc32xx_sdk_1_50_00_06\examples\rtos\CC3220S_LAUNCHXL\drivers\empty)工程截图如下
Board.h,CC3220S_LAUNCHXL.C,CC3220s_LAUNCHXL.h文件是与开发板硬件相关的文件。
main_tiritos.c是主函数,表示使用了TI的RTOS 操作系统。empty.c是用户定义线程的地方。
main函数的主要工作就是初始化,创建线程。如在第86行创建了一个mainThread的线程。这个线程功能的定义是在empty.c里定义的。
void *mainThread(void *arg0){/* 1 second delay */uint32_t time = 1;/* Call driver init functions */GPIO_init();// I2C_init();// SDSPI_init();// SPI_init();// UART_init();// Watchdog_init();/* Turn on user LED */GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);while (1) {sleep(time);GPIO_toggle(Board_GPIO_LED0);
}
}
打开empty.c可以找到这个线程的具体定义,先初始化了一个GPIO_init()函数(其他功能初始化函数因为没有用到被注释掉了,用到时只要取消注释就好了,是不是很方便)
然后调用GPIO_write函数来使led0亮。在while循环中使led0翻转。
在 \examples\rtos\CC3220S_LAUNCHXL\drivers目录下还有其他demo。利用SDK开发RTOS应用时,只要在empty工程的基础上添加用户需要的线程即可完成。此处涉及到了RTOS操作系统,没有概念的话建议去看看
在 \examples\rtos\CC3220S_LAUNCHXL\drivers目录下,每一个每一个驱动都是封装好的函数,使用者只需要调用函数API即可,在每个.h文件的开头,都有该驱动API的使用实例用法。例如打开UART.h文件。
@code* char input;* UART_Handle uart;* UART_Params uartParams;** // Initialize the UART driver.* UART_init();** // Create a UART with data processing off.* UART_Params_init(&uartParams);* uartParams.writeDataMode = UART_DATA_BINARY;* uartParams.readDataMode = UART_DATA_BINARY;* uartParams.readReturnMode = UART_RETURN_FULL;* uartParams.readEcho = UART_ECHO_OFF;* uartParams.baudRate = 9600;** // Open an instance of the UART drivers* uart = UART_open(Board_UART0, &uartParams);** if (uart == NULL) {* // UART_open() failed* while (1);* }** // Loop forever echoing* while (1) {* UART_read(uart, &input, 1);* UART_write(uart, &input, 1);* }* @endcode
给出了uart的相关函数使用方法,初始化例子等。其他derive.h文件同理,使用前先仔细阅读以下开头部分被注释掉的部分。