CC3220LaunchPad学习(一)

来源:互联网 发布:美股交易软件 编辑:程序博客网 时间:2024/06/08 09:14

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文件同理,使用前先仔细阅读以下开头部分被注释掉的部分。