关于制作基于STM32的指纹打卡器(未完成)笔者认为首先需要构思好此打卡器需要实现的功能有哪些?作为一个指纹
2021-08-16 08:39
本帖最后由 微正Microzero 于 2016-9-2 09:17 编辑 微正MZ628指纹识别模块是广州微正智能科技有限公司最新研发的指纹识别模块,其性能、结构图和接口说明如下。简介
2016-09-02 09:17
AS608指纹模块于51单片机的二次开发前言提要一、初识AS608:二、设计1.思路2.上原理图:3.程序设计中需要注意的几个点:串口:总结前言提要记得好久之前听老师说:你们有一个学姐非常的上进,在
2021-07-13 07:32
STM32 单片机 指纹门禁锁 指纹锁 AS608指纹模块 STM32F103C8T6
2022-02-21 07:24
`1、特性参数ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学指纹识别模块。ATK-AS608 模块采用了国内著名指纹识别芯片公司杭州晟元芯片技术有限公司的
2020-03-06 12:21
指纹识别模块ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学指纹识别模块。芯片内置 DSP 运算单元,集成了指纹识别算法,能高效快速采集图像
2022-01-26 06:50
简单了解下指纹识别吧。1、51单片机AS608指纹识别解决方案本设计是基于STC89C52单片机的指纹识别设计,采用AS608指纹模块做为传感器,LCD1602显示屏显
2021-07-21 09:08
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
本帖最后由 疯壳科技 于 2022-4-29 11:46 编辑 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文件下载请点击:
2022-04-29 11:42
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