CC3200AI实验教程
——疯壳·开发板系列
串口

串行接口分为异步串行接口和同步串行接口两种。异步串行接口统称为通用异步收发器(UART)接口,同步串行接口有SPI和I2C等,同步串行接口除了包含数据线外,还包含时钟线。
    本次实验中我们使用的是UART,也就是异步串行通信接口。UART的相关标准规定了接口的机械特性、电气特性和功能特性等,UART的电气特性标准包括 RS-232C、RS-422、RS-423和RS-485等,其中RS-232C是最常用的串行通信标准。RS-232C是数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准,其中DTE包括微机、微控制器和打印机等,DCE包括调制解调器MODEM、GSM模块和Wi-Fi模块灯。    
    RS-232C机械特性规定使用25针D型连接器,后来简化为9针D型连接器。RS-232C的电气特性采用负逻辑:逻辑“1”的电平低于-3V,逻辑“0”的电平高于+3V,这个TTL的正逻辑(逻辑“1”表示高电平,逻辑“0”表示低电平)不同,因此通过RS-232C和TTL器件通信时必须进行电平转换。
    目前微控制器的UART接口采用的是TTL正逻辑,和TTL器件连接不需要电平转换。和采用负逻辑的计算机相连接时需要进行电平转换(我们一般使用USB转串模块)。
    CC3200包含两个可编程UART接口(UARTA0~1),主要特性如下:
    a、可编程的波特率发生器,允许速度高达3Mbps;
    b、独立的16*8发送和接口FIFO,减轻CPU中断处理负载;
    c、可编程FIFO长度,包括提供传统双缓冲接口的单字节操作;
    d、FIFO触发阈值包括1/8、1/4、1/2、3/4和7/8;
    e、标准的异步通信起始、停止和奇偶校验位。
    CC3200的UART接口具有以下可编程串行接口特性:
    a、可编程的5、6、7或8位数据;
    b、偶、奇或无校验生成/检测;
    c、1或2个停止位生成;
    d、支持RTS和CTS调制解调器握手;
    e、标准的FIFO阈值中断和传输结束中断。
    CC3200的UART支持DMA,使用DMA可实现高效传输,UART具有单独的DMA发送和接收通道。支持当FIFO中有数据的单个请求接收和可编程FIFO阈值的突发请求接收以及FIFO中有空间的单个请求发送和可编程FIFO阈值的突发请求发送。
    1.1寄存器
    UARTDR为数据寄存器(也是FIFOs的接口)。
    在发送数据时,如果FIFO使能了,则写入该寄存器的数据会发送到发送FIFO 中。如果FIFO关闭,数据会被存储在发送保持寄存器中(发送FIFO最低一个字)。写该寄存器意味着通过串口发送。
    在接收数据时,如果FIFO使能了,数据字节和4位状态位被发送到12位宽的接收FIFO中。如果FIFO关闭,数据字节和状态被存储在接收保持寄存器中(接收FIFO中的最低一个字)。可以通过读取该寄存器来获取接收数据。如图1.0.1所示为UARTDR寄存器,如图1.0.2为其位定义。
    
    
    图1.0.1 UARTDR寄存器
    
    
    图1.0.2 UARTDR寄存器位定义
    UARTRSR_UARTECR是接收状态寄存器/错误清除寄存器。除了UARTDR寄存器之外,接收的状态位也可以通过UARTRSR寄存器获取。如果从该寄存器读取状态信息,则状态信息对应与在读取UARTRSR寄存器之前的UARTDR的状态信息。当有溢出条件发生时,状态位中的溢出标志位会立刻被置位。UARTRSR寄存器不能被写。写任何值到寄存器UARTECR中将会清除帧、校验、打断和溢出错误。复位会清零所有的位。如图1.0.3所示为UARTRSR_UARTECR寄存器,如图1.0.4为其位定义。
    
    
    图1.0.3 UARTRSR_UARTECR寄存器
    
    
    图1.0.4 UARTRSR_UARTECR寄存器位定义
    UARTFR为标志寄存器。在复位之后,TXFF、RXFF和BUSY标志位为0,TXFE 和RXFE位为1。RI和CTS位指示调制解调器的控制流和状态。这里需要注意的是,调制解调位只在UART1中有效,在UART0中是保留位。如图1.0.5所示为UARTFR,图1.0.6为其位定义。
    
    
    图1.0.5 UARTFR寄存器
    
    
    图1.0.6 UARTFR寄存器位定义
    UARTIBRD寄存器是波特率除数的整数部分。复位之后所有的位被清零。最小值为1(当UARTIBRD为0时),此时UARTFBRD寄存器无效。当改变UARTIBRD 寄存器时,只有在当前的字节传输完成之后才生效。波特率除数的任何改变都必须在写UARTLCRH寄存器之后。如图1.0.7所示为UARTIBRD寄存器。
    
    
    图1.0.7 UARTIBRD寄存器
    UARTFBRD寄存器是波特率除数的小数部分。复位之后所有的位被清零。当修改UARTFBRD寄存器的值时,只有在当前字节发送或者接收完成之后才会有效。波特率除数的任何改变都必须在写UARTLCRH寄存器之后。如图1.0.8所示为UARTFBRD寄存器。
    
    
    图1.0.8 UARTFBRD寄存器
    UARTLCRH寄存器是线控制寄存器。该寄存器控制串口的数据长度、校验和停止位的选择。当更新波特率除数寄存器的时候,必须也要重写该寄存器。因为波特率除数寄存器的写选通信号和该寄存器是连接在一起的。如图1.0.9所示为UARTLCRH寄存器,图1.1.0为其位定义。
    
    
    图1.0.9 UARTLCRH寄存器
    
    
    
    图1.1.0 UARTLCRH寄存器位定义
    UARTCTL是控制寄存器。在复位之后,除了发送和接收使能位之外,其它位都被清零。UARTEN位用于使能UART模块。在配置串口模块时必须将该位清零。如果在串口进行发送或者接收的操作时关闭串口模块功能,则在完成当前发送或者接收操作之后才关闭。如图1.1.1所示为UARTCTL寄存器,如图1.1.2为其位定义。
    注意:在UART使能的状态下,UARTCTL寄存器不能被改变,否则结果是无法预测的。修改UARTCTL寄存器时建议按照下面的操作进行:
    1、关闭UART;
    2、等待当前字节的发送或者接收操作完成;
    3、通过清零UARTLCRH寄存器中的FEN位来清除发送FIFO;
    4、重新写控制寄存器;
    5、使能UART模块。
    
    
    图1.1.1 UARTCTL寄存器
    
    
    图1.1.2 UARTCTL寄存器位定义
    UARTIFLS是选择FIFO产生中断阈值的寄存器。可以使用该寄存器来定义FIFO的阈值,同时UARTRIS寄存器中的TXRIS和RXRIS位被触发。产生中断是基于一个发送操作超过阈值而不是等于阈值。也就是说FIFO中的数据超过规定的阈值之后才会产生中断。例如,如果接收的触发阈值设置为一般(8字节),那么在串口模块接收到第9个字节的时候才会产生中断。在复位之后,TXIFLSEL和RXIFLSEL位被配置,所以FIFOs在接收一半时触发中断。如图1.1.3所示为UARTRIS寄存器及其位定义。
    
    
    图1.1.3 UARTIFLS及其位定义
    UARTIM是中断掩码置位/清零寄存器。读取该寄存器则获得当前中断的掩码值。进行置位时,对应的中断将被发送到中断控制器。清零操作则对应的中断不会被发送到中断控制器。如图1.1.4所示为UARTIM寄存器,如图1.1.5为其位定义。
    
    
    图1.1.4 UARTIM寄存器
    
    
    图1.1.5 UARTIM寄存器位定义
    UARTRIS是源中断状态寄存器。可以读取到当前中断源。写操作无效,如图1.1.6所示为UARTRIS寄存器,如图1.1.7为其位定义。
    
    
    图1.1.6 UARTRIS寄存器
    
    
    图1.1.7 UARTRIS寄存器位定义
    UARTMIS是中断掩码状态寄存器。读该寄存器获取对应中断的掩码值。写操作无效。如图1.1.8所示为UARTMIS寄存器,如图1.1.9为其位定义。
    
    
    图1.1.8 UARTMIS寄存器
    
    
    图1.1.9 UARTMIS寄存器位定义
    UARTICR是中断清零寄存器。置位则对应的中断被清除(清除中断源寄存器和中断掩码寄存器中对应的位),清零操作无效。如图1.2.0所示是为UARTICR寄存器,如图1.2.1为其位定义。
    
    
    图1.2.0 UARTICR寄存器
    
    
    图1.2.1 UARTICR寄存器位定义
    UARTDMACTL是DMA控制寄存器。如图1.2.2所示为UARTDMACTL寄存器及其位定义。
    
    
    图1.2.2 UARTDMACTL寄存器及其位定义
    1.2实验现象
    打开CC3200_Uart_Demo文件夹里的工程,该工程主要是把CC3200的UARTA0的波特率为115200bps,8位数据位,1个停止位,无奇偶校验位,如图1.2.3所示。
    
    
    图1.2.3 串口参数设置
    当串口接收到数据后,把接收到的数据再通过串口发送出去,编译工程,打开Uniflash,把bin文件下载到CC3200板子上(具体步骤请参考GPIO小节)。
    把“CH340G_VCC”和串口选择的第一个“RXD”和第二个“TXD”拨码开关均拨到“ON”。
    插上USB数据线接到电脑,打开串口助手,选择串口号,波特率设置为115200bps,按下板子的复位可见串口打印,如图1.2.4所示。
    
    
    图1.2.4 复位时串口打印
    在发送框内输入疯壳的网址,点击发送,串口助手收到CC3200的回传,如图1.2.5所示。
    
    
    图1.2.5 串口助手收到回传

如需定制开发,请通过官网“疯壳”里的联系方式联系我们

配套资料:http://www.fengke.club    
套件地址:http://shop115904315.taobao.com

【开发教程6】AI语音人脸识别(会议记录仪/人脸打卡机)-串口相关推荐

  1. AI语音助手识别动画AE制作教程

    做UI或者动效设计中,有时候会用到AI语音助手识别动效,Siri.华为的小艺语音助手.小爱同学等都有着非常出色的语音识别动效,今天来给大家分享一款较为炫酷的AI语音识别动画,直接上教程. AI语音助手 ...

  2. C#WPF 语音开发教程 TTS中英文语音(男女声音)朗读 源代码下载 csdn tts(text to sound) 一步一步 教你制作语音软件 附图和源代码

    C#WPF  语音开发教程  TTS中文语音朗读 一步一步 教你制作语音软件 附图和源代码 使用时,请确认电脑喇叭打开,并且不是静音额. 效果展示 一 项目准备 1.vs2012开发平台 2.微软的语 ...

  3. Python | 人脸识别系统(人脸识别、活体检测、背景模糊、关键点检测)

    本博客为人脸识别系统项目简介 项目GitHub完整源代码地址:Su-Face-Recognition: A face recognition for user logining 一.运行环境 本系统能 ...

  4. 人脸识别_云端人脸识别-人脸识别SDK+API-人脸识别闸机解决方案

    云端人脸识别-人脸识别SDK+API-人脸识别闸机解决方案 人脸识别闸机-人脸识别闸机解决方案 软硬一体的人脸识别闸机解决方案,提升人员系统化管理的安全性与便捷性 方案构成 针对人员出入的闸机及门禁场 ...

  5. python人脸识别算法_python人脸算法

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 若图片中包含多张人脸,只选取其中人脸面积最大的人脸. 支持png.jpg.jpe ...

  6. Java人脸识别登录Demo(人脸考勤系统)

    最近好多小伙伴在做毕设,有人脸识别登录.人脸识别考勤系统.人脸支付(本文代码可以实现,但只限于识别逻辑,并不安全)等,跟人脸识别有关的项目.由于上一篇文章写了关于人脸识别登录的代码有很多小伙伴找我要源 ...

  7. python人脸识别对比_python 人脸对比--百度API人脸相似度识别(超简单)

    说明:这篇是写使用百度人脸识别API进行人脸相似度识别对比,如 给两个人物照片,判断是否是同一个人.简单的4步完成. 1,获取百度人脸识别API的API Key和Secret Key.(10分钟内完成 ...

  8. 调用百度人脸识别接口实现人脸识别

    调用百度人脸识别接口实现人脸识别 目标: 1.学习使用百度AI开放平台进行人脸识别 2.将学到的内容:JSON数据,HTTP API调用,base64图片编码与解码 import json impor ...

  9. 夜间环境人脸识别_动态人脸识别系统的优势

    TH-894是一款天煌电子全新的三防动态人脸识别xt终端采用嵌入式系统.功耗低,运行更稳定.数据更安全.使用高性能智能处理器,基于深度学习的人脸识别与抓拍信息提取,极大的提高了人脸抓拍率.采用夜间红外 ...

  10. python实现人脸识别抓取人脸并做成熊猫头表情包(2)之优化

    上次做完python实现人脸识别抓取人脸并做成熊猫头表情包之后就放了一下,因为还要好好学习Springboot毕竟这才是找工作的硬实力.但是优化这个代码心里面一直很想,借用<clean code ...

最新文章

  1. 博为峰JavaEE技术文章 ——MyBatis 注解
  2. 【转】shell之for、while、until循环
  3. HH SaaS电商系统的销售订单付款后生成采购单和出库单的时序图
  4. Jeecg-Boot异常处理'jeecg-boot.QRTZ_LOCKS' doesn't exist
  5. pandas AttributeError: ‘Styler‘ object has no attribute ‘style‘解决方法
  6. 以后的blog将转移到微信公众号,请扫码关注谢谢!
  7. Haar特征与积分图
  8. 寄生电容/寄生电阻/寄生电感
  9. git pull时候报错443
  10. 1.27 Cubemx_STM32H7 软\硬件I2C
  11. 【高速PCB电路设计】5.布局要点
  12. Teardrop攻击 —— 创建虚假的IP数据包
  13. linux5关闭apic服务,Linux中断 - APIC
  14. Java笔试面试-Executors
  15. zlg72128数码管驱动管理显示芯片
  16. 修改servu数据库密码 servu加密方式
  17. erdas裁剪影像_在arcgis、ERDAS下如何进行影像图裁剪
  18. 【go语言基础】go语言的优点和缺点
  19. 关于PlatformIO开发 Arduino,自定义库的设置
  20. 一周新闻纵览:日本电子支付遭盗刷,浏览器历史或暴露隐私,程序员入侵67万台计算机,7000余款App被处理

热门文章

  1. 计算机视觉:图像到图像的映射
  2. Ubuntu pyinstaller 打包可执行文件时报错:... qt.qpa.plugin: Could not find the Qt platform plugin “xcb“ in “...
  3. 第 01 篇 和数据打交道的你,一定要学会 SQL
  4. linux——基本指令(2)
  5. 微信公众平台开发OAuth2.0网页授权(转)
  6. vue和表格和饼状图的渲染
  7. 这是我见过最好的流程引擎架构设计!
  8. hana数据库与mysql_HANA数据库为何如此之快
  9. [置顶]第二弹:升级原创日语汉字转假名小工具1.02
  10. 日语助词を的所有的语法点,请牢记