要的技术,变成各路传统半导体制造商的香饽饽,蓝牙、WiFi以及Zigbee等技术迎来大爆发。作为目前唯一能够连接物与互联网的无线通信技术,WiFi技术也就显得愈加重要。CC3200是美国德州仪器公司(TI
2022-04-25 17:17
`安全生产许可证样本 2016安全生产许可证安全生产许可证样本 2016
2016-11-28 22:13
收发器(UART)接口,同步串行接口有SPI和I2C等,同步串行接口除了包含数据线外,还包含时钟线。 本次实验中我们使用的是UART,也就是异步串行通信接口。UART的相关标准规定了接口的机械特性、电气
2022-04-29 11:42
GPIO GPIO全称General Purpose Input Output即通用的输入输出,是所有控制器里必备的资源,CC3200的所有数字引脚和部分模拟引脚均可作为通用的输入输出引脚(GPIO)使用,CC3200把GPIO分为三个组,分别是GPIOA0、GPIOA1、GPIOA2、GPIOA3,每一组GPIO有8个引脚,引脚分配如表1.0.1所示: 表1.0 .1CC3200引脚分配表 表1 根据功能引脚配置的不同,CC3200最多可以有27个GPIO,且所有的GPIO引脚均具有中断功能,触发的方式支持电平触发和边沿触发(上升沿和下降沿),不仅如此,所有的GPIO都可以用于触发DMA、可作为唤醒源,GPIO引脚可编程:可配置为内部10uA上拉或下拉,驱动能力可调节为:2mA、4mA、6mA、8mA、10mA、12mA、14mA,同样也支持开漏模式。 对GPIO进行操作时,主要需要了解两大寄存器:GPIODATA 寄存器、GPIODIR寄存器。 GPIODATA寄存器是数据寄存器。在软件控制模式下,如果对应的引脚通过 GPIODIR寄存器配置为输出模式,这写到GPIODATA 寄存器中的值会被传到对应引脚输出。GPIODATA 寄存器有256个别名地址,偏移值为0x000到0x3ff。一个不同地址别名可以用来直接读/写任何8个信号位的组合。这个特性可以避免读-改-写和软件读的位掩码的时间消耗。 在该方案中,为了写GPIODATA寄存器,掩码中的对应位对应于总线中[9..2] 位必须被置位。否则在进行写操作时,对应位的值不会被改变。同样,进行读操作时,也是对应总线中的[9..2],在读取对应位时,也必须置位,否则读取为 0。 如果引脚配置为输出模式,则读取GPIODATA寄存器返回最后一次写入的值;如果配置为输入模式则返回对应引脚的值。所有位都可以通过复位清零。 如图1.0.1所示为GPIODATA寄存器。 图1.0.1 GPIODATA寄存器 GPIODIR 寄存器是数据方向寄存器。在 GPIODIR 寄存器中设置一位将对应的引脚配置为输出;清除一位对应的引脚配置为输入。复位时多有位都清零,也就是说所有的 GPIO 引脚默认是输入。如图1.0.2所示为GPIODIR寄存器。 图1.0.2 GPIODIR寄存器 打开配套的代码例程,打开GPIO文件夹下的IAR工程,如图1.0.3所示为主函数。 图1.0.3 GPIO的主函数 1.1Ti Pin Mux Tool工具 PinMuxconfig()函数可由TI Pin Mux Tool工具生成,打开TI Pin Mux Tool工具,如图1.0.4所示,第一步,在Device内找到CC3200,第二步点击“Start”。 图1.0.4 TI Pin Mux Tool 如图1.0.5所示,第一步点击“GPIO”处的添加,默认是选取全部GPIO;第二步,把“GPIO Signals”前面的勾去掉,去除全选;第三步,选择GPIO_9、GPIO_10、GPIO_11(对应开发板上的三颗LED);驱动LED需要GPIO输出,第四步,把三个GPIO的“Output”勾选上。 图1.0.5 TI Pin Mux Tool配置步骤 最终完成的如图1.0.6所示。在最右边的Generated Files处点击,把“pin_mux_config.c”和“pin_mux_config.h”下载下来添加到工程里即可。 图1.0.6 配置完成示意图 生成好的端口配置函数如图1.0.7所示,该函数主要是对LED对应的端口开启时钟、设置方向等。 图1.0.7 端口配置函数 配置好后,通过GPIO_IF_LedConfigure()函数把LED端口进行处理,即把各个LED的端口所对应的端口组,以及属于该组中的第几个IO提取出来。如图1.0.8所示。 图1.0.8 端口处理 完成上面两步后,先关闭所有的LED,然后在一个死循环内执行“流水”部分,即按顺序以一定的时间间隔开闭LED,如图1.0.9为“流水”效果实现代码。 图1.0.9“流水效果”实现代码 1.2代码下载 编译程序,生成了相对应的bin文件,下载前,先插上仿真调试器Ti Stellaris,在把旁边的拨码开关的“RX”和“TX”拨到“ON”,把启动方式拨码选择为FLASH启动,即把SOP2拨到“ON”。 打开下载工具Uniflash,点击快速启动向导中的“新目标配置”,在弹出的配置对话框中选择CC3x Serial(UART) Interface,然后点击OK。如图1.1.0所示。 图1.1.0选择下载的芯片以及方式 然后在COM Port中输入板子连接的串口号(根据自己的电脑来进行选择), 如图1.1.1所示。 图1.1.1 串口号选择 初次使用板子时,先烧写Sevcie Pack,否则程序可能无法运行,如图1.1.2所示点击“Sevice Pack Programming”,选择之前安装的Sevicepack安装文件夹目录下的bin文件即可,如果之前已经向CC3200烧写过Sevice Pack的这一步可以忽略。 图1.1.2 SevicePcak的烧写 在左侧点击/sys/mcuimg.bin,然后在右侧 URL 中选择刚编译生成的bin文件,然后选中下方的Erase和Update。如图1.1.3所示。 图1.1.3 选择下载的目标 然后点击“CC31xx/CC32xx Flash Setup and Control”,点击 Program 进行下载,如图1.1.4所示。 图1.1.4下载bin文件 根据软件下方的提示,按下复位按键就可以看到下载的相关信息,如图1.1.5所示。 图1.1.5 bin文件下载中 下载完成如图1.1.6所示。 图1.1.6 下载完成 1.3实验现象 把下载前的改变的拨码开关拨回原处。再把拨码开关“D5”、“D6”和“D7”拨到“ON”,使IO口与LED建立连接关系,按下复位开关,可以看到三颗LED呈“流水”状闪烁,如图1.1.7所示为该实验现象。 图1.1.7 实验现象 视频地址:https://www.fengke.club 文件下载请点击:
2022-04-26 17:17
CC3200AI实验教程 ——疯壳·开发板系列 中断 接口数据传送控制方式有查询、中断和DMA等,中断是重要的接口数据传送控制方式。中断控制分为全局和局部两级,全局中断由NVIC控制,局部中断由外设控制。 嵌套向量中断控制器NVIC支持多个内部异常和多达240个外部中断。从广义上讲,异常和中断都是暂停正在执行的程序转去执行异常或中断处理程序,然后返回原来的程序继续执行。从狭义上将,异常由内部事件引起,而中断有外部硬件产生。 异常和中断的处理与子程序调用有相似之处,但也有下列本质区别: 什么时候调用子程序是确定的,而什么时候产生异常和中断时不确定的。子程序的起始地址由调用程序给出,而异常和中断程序的起始地址存放在地址表中。 子程序的执行一般是无条件的,而异常和中断处理程序的执行要先使能。 CC3200的NVIC具有下列特性: a、确定的、快速的中断处理,总是12个时钟周期; b、每个中断的优先级可编程(0~7,0表示最高优先级); c、3~8位优先级配置; d、动态重新分配中断优先级; e、中断优先级分组允许选择中断优先级分组和中断子优先级的数量。低延迟中断和异常处理; f、中断信号电平和边沿检测。 1.1寄存器 本小节将使用的GPIO外部中断来实现按键的功能。每个GPIO端口的中断功能通过7个寄存器来进行控制。这些寄存器用来选择中断源、中断优先级和边沿特性。当一个或者多个GPIO输入引起中断时,一个单中断信号输出到整个GPIO端口的中断控制器。 下面三个寄存器定义了引起中断的边沿或检测: a、GPIOIS:GPIO 中断检测寄存器; b、GPIOIBE:GPIO中断边沿寄存器; c、GPIOIEV:GPIO中断时间寄存器。 中断功能通过GPIO中断掩码(GPIOIM)寄存器来进行使能和关闭。 当一个中断条件产生时,有两个地方可以查看中断信号的状态:GPIO源中断状态(GPIORIS)寄存器和GPIO掩码中断状态(GPIOMIS)寄存器。正如名称暗示的那样,GPIOMIS寄存器只显示可以发送给中断控制器的中断条件。GPIORIS 寄存器表示一个 GPIO引脚达到了产生中断的条件,但是不一定会发送给中断控制器。 如果是GPIO电平检测中断,产生中断的电平信号必须保持到中断服务的产生。一旦输入的信号解除中断产生的逻辑信号,对应的GPIORIS寄存器中的源中断寄存器位将被清零。对于GPIO边沿检测中断,GPIORIS寄存器中的RIS位通过向寄存器GPIOICR中的对应位写入1来进行清零。GPIOMIS寄存器中的对应位反应源中断状态位的掩码值。 当编辑中断控制寄存器时,应当将中断全部关闭(GPIOIM清零)。如果对应的位使能的话,则写任何中断控制寄存器都会产生不必要的中断 GPIOIS是中断检测寄存器。置位则对应的引脚进行电平检测,清零则对应的引脚进行边沿检测。在复位时,所有的位清零。如图1.0.1所示。 注意:为了防止产生错误的中断,在配置中断检测寄存器和边沿寄存器的时候,应当清零GPIOIM寄存器中的IME位来屏蔽中断引脚。配置GPIOIS寄存器的IS位和GPIOIBE寄存器的IBE位。清除GPIORIS寄存器。最后通过置位GPIOIM寄存器中的IME位来打开引脚。 图1.0.1 GPIOIS寄存器 GPIOIBE寄存器允许双边沿来触发中断。当GPIOIS寄存器设置为检测边沿时, 则设置GPIOIBE寄存器来配置对应的引脚来检测上升和下降沿,而忽略 GPIOIEV 寄存器中的对应位的配置。清零一位则配置为引脚受GPIOIEV寄存器的控制。复位之后,所有的位都被清零。如图1.0.2所示。 注意:为了防止产生错误的中断,在配置中断检测寄存器和边沿寄存器的时候,应当清零GPIOIM寄存器中的IME位来屏蔽中断引脚。配置GPIOIS寄存器的IS位和GPIOIBE寄存器的IBE位。清除GPIORIS寄存器。最后通过置位GPIOIM寄存器中的IME位来打开引脚。 图1.0.2 GPIOIBE寄存器 GPIOIEV寄存器是中断事件寄存器。置位该寄存器中对应的位来配置对应的引脚检测上升沿或者高电平,这取决于GPIOIS 寄存器对应位的配置。清零该寄存器中的对应位则对应的引脚检测下降沿或者低电平,这取决于GPIOIS寄存器中对应位的配置。复位之后所有的位都清零。如图1.0.3所示。 图1.0.3 GPIOIEV寄存器 GPIOIM寄存器是中断掩码寄存器。置位该寄存器中的对应位,则对应引脚上产生的中断将通过组合中断信号发送给中断控制器。清零则对应的引脚产生的中断不会发送给中断控制器。复位之后所有的位都清零。如图1.0.4所示。 图1.0.4 GPIOIM寄存器 GPIORIS寄存器是源中断状态寄存器。当对应的引脚达到中断条件时,该寄存器中对应的位被置位。如果中断掩码(GPIOIM)寄存器中的对应位被置位,则发送中断信号到中断控制寄存器。某一位读取为0,则说明对应的引脚没有产生中断。对于电平触发中断,引脚上的中断信号必须保持到中断服务。一旦中断信号达不到中断逻辑检测要求,则GPIOIS寄存器对应的RIS位将被清零。对于一个GPIO边沿检测中断,GPIORIS寄存器中的RIS位通过置位GPIOICR寄存器中对应的位进行清零。GOUIMIS寄存器中的位反映RIS位的掩码值。如图1.0.5所示。 图1.0.5 GPIORIS寄存器 GPIOMIS寄存器是掩码中断状态寄存器。如果寄存器中对应位被置位,则对应的中断将被发送到中断控制器。如果某一位被清零,则无论是否有中断产生, 中断都会被屏蔽掉。GPIOMIS寄存器是中断掩码之后的状态。如图1.0.6所示。 图1.0.6 GPIOMIS寄存器 GPIOICR寄存器是中断清零寄存器。对于边沿检测中断,置位GPIOICR寄存器中对应的位,则会清除GPIORIS和GPIOMIS寄存器中对应的位。如果中断是电平检测,则该寄存器中的对应位没有影响。另外,向该寄存器中写入0也没有任何影响。如图1.0.7所示。 图1.0.7 GPIOICR寄存器 1.2实验现象 本实验在是官方CC3200SDK_1.2.0中Interrupt例程代码的基础上修改得来的,打开Interrupt_Demo,由于本次实验用到串口和按键,所以在mian函数的PinMuxConfig()中配置了串口0的输入输出以及GPIO_13和GPIO_22的方向为输入。 本次实验的关键是在ButtonIntInit()函数中,该函数如图1.0.8所示。 图1.0.8 ButtonIntInit()函数 在该函数中吧GPIO_13与GOIO_22配置为下降沿触发,触发的中断函数为Button1IntHandler()以及Button2IntHandler(),进入中断后,首先清除标志位,然后通过串口0打印出“Button1”以及“Button2”。 打开Uniflash,把编译后生成bin文件下载到板子上(参考GPIO小节),把串口选择的拨码的第一个“RXD”以及“CH340G_VCC”拨到ON,这里我们用到了串口0的接收,打开串口调试助手,选择对应的串口号,波特率设置为115200,打开串口,a按下复位,可以看到串口打印信息如图1.0.9所示。 图1.0.9 复位时串口打印 按下板子上的SW2和SW3可以看到串口打印信息如图1.1.0所示。 图1.1.0 按下按键后串口打印 配套资料:http://www.fengke.club 详情地址:http://shop115904315.taobao.com/ 文件下载请点击:
2022-05-05 16:46
包含有DIN且使用Skey进行TEA加密的注册确认包传送到服务器,服务器解密验证通过后返回响应包,并且把注册设备的PN码、注册状态等更新到数据库。CC3200与服务器间的通信协议为TLV结构的协议,即
2022-06-10 14:32
CC3200AI实验教程——疯壳·开发板系列WIFI-UDP网络通信UDP是User Datagram Protocol的简称, 中文名是用户数据报协议。在网络中它与TCP协议一样用于处理数据包
2022-05-18 16:45
针对各种化工安全事故频发,国家和地方各级部门不断出台相关规定和要求:通过构建化工企业安全生产信息化管理平台,实现对企业安全生产
2022-02-18 16:56
CC3200AI实验教程——疯壳·开发板系列WIFI-UDP网络通信UDP是User Datagram Protocol的简称, 中文名是用户数据报协议。在网络中它与TCP协议一样用于处理数据包
2022-07-28 18:07
员-B证(安全员)全真模拟考试试题,学员可通过安全员-B证(安全员)模拟考试题库全真模拟,进行安全员-B证(安全员)自测
2021-07-05 06:00