DSP28335使用FIFO的串口中断总结

2023-05-16

一、串行通信与并行通信

DSP控制器间,DSP控制器与外部设备间交换信息,通信,可采取的通信方式主要两大类1、串行通信 2、并行通信。

并行通信一般包括多条数据线、多条控制线和状态线,传输速度快,传输线路多,硬件开销大,不适合远距离传输。一般用在系统内部,如XINTF接口或者控制器内部如DMA控制器。

串行通信则在通信线路上既传输数据信息也传输联络控制信息,硬件开销小,传输成本低,但是传输速度慢,且收发双方需要通信协议,可用于远距离通信。串行通信可以分为两大类1、同步通信 2、异步通信

同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器发送数据时同时包含时钟信号,接收器利用该时钟信号进行接收。典型的如I²C、SPI。

异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。典型的如SCI。

二、28335SCI介绍

F28335处理器共提供3个SCI接口,相对TI的C240X系列DSP的SCI接口,功能上有很大的改进,在原有功能基础上增加了通信速率自动检测和FIFO缓冲等新的功能,为了减小串口通信时CPU的开销,F28335的串口支持16级接收和发送FIFO。也可以不使用FIFO缓冲。SCI接收器和发送器有各自独立的中断和使能位,可以独立地操作实现半双工通信,或者同时操作实现全双工通信。为了保证数据完整,SCI模块对接收到的数据进行间断、极性、超限和帧错误的检测。为了减少软件的负担,SCI采用硬件对通信数据进行极性和数据格式检查。通过对16位的波特率控制寄存器进行编程,可以配置不同的SCI通信速率。

所谓的FIFO就是先进先出的意思。SCI工作在FIFO模式下一般是因为所传输的信息并不是以一个帧为单位,而是以多个帧组成的一个包为信息单位的。比如说我的一个数据包由5个帧组成,第一个为控制字节,后四个字节共同组成一个浮点数。这时你可以设置FIFO接收中断为5个字节时产生中断。设置以后,每接收到5个字节后才会产生一次中断,而不是每接收一次产生一次中断。这样可以大幅减小CPU的开销。而先进先出的意思就是:在中断中,你读FIFO接收寄存器读到的数据是首先接收到的数据,再读一次的话读到的是接收到的第二个数据。而16深度的话就是最多能保存最近的16个接收数据,如果接收数据超过16个的话会产生相应的溢出,可以软件编程对溢出进行处理。
对于发送FIFO也是一样,你可以一次将多个数据放到发送FIFO中,然后DSP按先后顺序依次发送数据。

三、SCI模块的特点如下(通过相应的寄存器可以对这些功能进行设置)

   (1)2个外部引脚:SCITXD为SCI数据发送引脚;SCIRXD为SCI数据接收引脚。两个引脚为多功能复用引脚,如果不使用可以作为通用数字量I/O。

   (2)可编程通信速率,可以设置64K种通信速率。

   (3)数据格式:

        ◇ 1个启动位;

        ◇ 1~8位可编程数据字长度;

        ◇可选择奇校验、偶校验或无效校验位模式;

        ◇ 1或2位的停止位。

   (4)4种错误检测标志位:奇偶错误、超越错误、帧错误和间断检测。

   (5)2种唤醒多处理器方式:空闲线唤醒(Idle-line)和地址位唤醒(AddressBit)。

   (6)全双工或者半双工通信模式。

   (7)双缓冲接收和发送功能。

   (8)发送和接收可以采用中断和状态查询2种方式。

   (9)独立地发送和接收中断使能控制。

   (10)NRZ(非归零)通信格式。

   (11)13个SCI模块控制寄存器,起始地址为7050H。

   (12)自动通信速率检测(相对F140x增强的功能)。

   (13)16级发送/接收FIFO(相对F240x增强的功能)。

四、SCI主要功能单元

   (1) 1个发送器(TX)及相关寄存器。

            ◇ SCITXBUF:发送数据缓冲寄存器,存放要发送的数据(由CPU装载);

        ScicRegs.SCITXBUF=a;//向数据缓冲寄存器中写入数据即可发送该数据

            ◇ TXSHF寄存器:发送移位寄存器,从SCITXBUF寄存器接收数据,并将数据移位到SCITXD引脚上,每次移1位数据。

   (2)1个接收器(RX)及相关寄存器。

            ◇ RXSHF寄存器:接收移位寄存器,从SCIRXD引脚移入数据,每次移1位;

            ◇ SCIRXBUF:接收数据缓冲寄存器,存放CPU要读取的数据,来自远程处理器的数据装入寄存器RXSHF,然后又装入接收数据缓冲寄存器SCIRXBUF和接收仿真缓冲寄存器SCIRXEMU中。

   (3)一个可编程的波特率产生器。

   (4)数据存储器映射的控制和状态寄存器。

五、SCI寄存器


SCICCR寄存器各位的功能如图所示,可以配置SCI的发送或接收的数据长度、是否使用奇偶校验、结束位的个数等。同理可知每个寄存器的各位有不同功能,写程序的时候查找相应的寄存器即可。(其实许多东西TI已经帮我们写好了,例如有FIFO的测试函数,我们可以在别人写好的基础上进行修改,加快进度)

六、SCI发送与接收功能介绍


可编程的中断级:发送和接收FIFO都能产生CPU中断,只要发送FIFO状态位TXFFST(位12~8)与中断触发优先级TXFFIL(位4~0)相匹配,就产生一个中断触发,从而为SCI的发送和接收提供一个可编程的中断触发逻辑。

标准SCI的一个字的发送缓冲器作为发送FIFO和移位寄存器间的发送缓冲器。只有移位寄存器的最后一位被移出后,一个字的发送缓冲才从发送FIFO装载。使能FIFO后,经过一个可选择的延迟(SCIFFCT),TXSHF被直接装载而不再使用TXBUF。(与标准SCI相比,中断源变了,发送时标准的SCITXBUF为空)

SCI发送数据过程划线处置位与清除都是硬件自动完成的。

七、仿真结果分析

最终的程序在下面。编写的程序功能是使用FIFO中断的形式发送一个数组,数组中起始数据是5,5,5,5。先发送这些数据注意串口接收与发送的都是字符数据,发送数字量的时候要注意转化,然后在中断中修改第四个数据为中断的次数,然后发送新的数据。第一次的执行结果如图所示,

正确结果应该是5555,5551,...,分析结果可知,似乎是在开启中断之后就产生一次串口发送中断。但是中断标志位清零的啊。(猜测是因为串口发送缓冲寄存器中此时没有数据,给理解成了发送完毕。难道需要对发送缓冲寄存器先赋值再开中断?)(测试了下,把第一次要发送的数据再启动中断之前放入了FIFO中,输出结果是正确的)

在处理上一个问题的时候,遇到的另一个问题如下:

如上,串口实验的时候为什么先禁止发送功能后面的配置就不起作用了呢?我是在最后又开启了发送功能,但是接收不到数据,如果开始的时候没有禁止发送功能就可以接收到数据。其实原因如下,

虽然最后开启发送功能了,但是最后SW RESET位确被写入了0,导致复位,所有的配置都被复位了。(由此也说明了配置寄存器的时候要小心,确定每位的功能。而且配置的时候尽量只配置你需要的那一位,其他的不要改动。用bit,不要用all)

最终的结果如图所示,达到了预期的结果。也得出当FIFO中的数据全部发送完毕才会产生中断。


八、总结

实现一个功能的时候首先查看相关的资料,例如数据手册,论坛、百度、书籍等,搜集各种相关资料,然后看别人是如何实现的,分析下相关步骤,理清好思路。针对不懂的地方继续查找资料,层层递进。(如果想省事,可以在别人正确代码的基础上进行修改,看他配置了什么寄存器,实现了什么功能,然后根据自己的需求,查看数据手册重新配置),实现的时候可以一个个小功能的实现,遇到疑惑的除求助外,也可试着观察不同的情况下会出现什么结果。总之就是多搜,多想,多动手,多总结。

#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#define SCIB 0
#define SCIC 1
// Prototype statements for functions found within this file.
void scic_fifo_init(void);
void scic_xmit(int a);
interrupt void uart_send(void);

// Global counts used in this example
Uint16 isrCount=0;
Uint16 ErrorCount=0;
Uint16 sdata[4]={5,5,5,5};//要发送的数据
void main(void)
{
	Uint16 i=0;
// Step 1. Initialize System Control registers, PLL, WatchDog, Clocks to default state:
// This function is found in the DSP2833x_SysCtrl.c file.
	InitSysCtrl();

// Step 2. Select GPIO for the device or for the specific application:
// This function is found in the DSP2833x_Gpio.c file.
// InitGpio(); skip this as this is example selects the I/O
// for SCI-A in this file itself
   InitSciGpio();

// Step 3. Initialize PIE vector table:
// The PIE vector table is initialized with pointers to shell Interrupt
// Service Routines (ISR).  The shell routines are found in DSP2833x_DefaultIsr.c.
// Insert user specific ISR code in the appropriate shell ISR routine in
// the DSP28_DefaultIsr.c file.

// Disable and clear all CPU interrupts:
	DINT;
	IER = 0x0000;
	IFR = 0x0000;

      // Initialize Pie Control Registers To Default State:
      // This function is found in the DSP2833x_PieCtrl.c file.
	  // InitPieCtrl();  PIE is not used for this example

      // Initialize the PIE Vector Table To a Known State:
      // This function is found in DSP2833x_PieVect.c.
      // This function populates the PIE vector table with pointers
      // to the shell ISR functions found in DSP2833x_DefaultIsr.c.
	  InitPieVectTable();

      // Enable CPU and PIE interrupts
      // This example function is found in the DSP2833x_PieCtrl.c file.
      EnableInterrupts();

// Step 4. Initialize all the Device Peripherals to a known state:
// This function is found in DSP2833x_InitPeripherals.c
// InitPeripherals(); skip this for SCI tests
// Step 5. User specific functions, Reassign vectors (optional), Enable Interrupts:

    isrCount = 0;
    ErrorCount = 0;
#if SCIB
    scib_fifo_init();	   // Initialize the SCI FIFO
    scib_loopback_init();  // Initalize SCI 
#elif SCIC
    scic_fifo_init();	   // Initialize the SCI FIFO
#endif
// Send a character ,先给发送缓冲寄存器赋值。
    for(i=0;i<4;i++)
    {
        scic_xmit(sdata[i]+0x30);
    } 
   scic_xmit(' ');
// Step 6. Send Characters forever starting with 0x00 and going through
// 0xFF.  After sending each, check the recieve buffer for the correct value
 EALLOW;  
//  PieVectTable.SCIRXINTC = &uartIsr;  
    PieVectTable.SCITXINTC = &uart_send;  
    EDIS;  
    PieCtrlRegs.PIECTRL.bit.ENPIE=1;  
//  PieCtrlRegs.PIEIER8.bit.INTx5=1;  
    PieCtrlRegs.PIEIER8.bit.INTx6=1;  
    IER|=M_INT8;  
    EINT;  
    ERTM;    
    for(;;){ }
}
interrupt void uart_send(void)  
{  
    Uint16 i;   
    isrCount++;
    sdata[3]=isrCount;
    for(i=0;i<4;i++)
    {
  	scic_xmit(sdata[i]+0x30);
    }  
    scic_xmit(' '); 
    if(isrCount==10)
    {
    	ScicRegs.SCICTL1.bit.TXENA =0;//禁止发送缓冲器工作。
    }
    PieCtrlRegs.PIEACK.all=0xffff;//0x0080; 
    ScicRegs.SCIFFTX.bit.TXFFINTCLR=1;	// Clear SCI Interrupt flag
}  

// Transmit a character from the SCI'
void scic_xmit(int a)//发送一个数据a,类型为int
{
   ScicRegs.SCITXBUF=a;//向数据缓冲寄存器中写入数据即可发送该数据
}

// Initalize the SCI FIFO
void scic_fifo_init()
{
// Test 1,SCIC  DLB, 8-bit word, baud rate 9.6k, default, 1 STOP bit, no parity
//功能是配置发送模式
// Note: Clocks were turned on to the SCIC peripheral
//  in the InitSysCtrl() function
//  ScicRegs.SCICTL1.all =0x0000; //开始的时候先禁止接收与发送功能 
    ScicRegs.SCICCR.all =0x0007;   // 1 stop bit,  No loopback
                                   // No parity,8 char bits,                   
                                   // async mode, idle-line protocol
//数据长度8位,一个结束位,无奇偶校验,空闲线模式,禁止回送    
                                 
//  ScicRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,
                                      // Disable RX ERR, SLEEP, TXWAKE
                                   
    ScicRegs.SCICTL1.all =0x0002; //允许发送,禁止接收                              
//  ScicRegs.SCICTL2.all =0x0001;//发送缓冲器中断使能。似乎与下面的重复了
    ScicRegs.SCICTL2.bit.TXINTENA =1;//发送缓冲器中断使能。
//  ScicRegs.SCICTL2.bit.RXBKINTENA =1;
    ScicRegs.SCIHBAUD    =0x0001;
    ScicRegs.SCILBAUD    =0x00e7;
 //上面是波特率设置,书上写的0x00e7   
    
//  ScicRegs.SCICCR.bit.LOOPBKENA =0;// enable(Disable) loop back
    ScicRegs.SCICTL1.all =0x0022;     // Relinquish SCI from Reset
//FIFO设置
    ScicRegs.SCIFFTX.bit.TXFIFOXRESET=0;
//  ScicRegs.SCIFFRX.bit.RXFIFORESET=0;

    ScicRegs.SCIFFTX.all=0xE060;
//  ScicRegs.SCIFFRX.all=0x204f;
    ScicRegs.SCIFFCT.all=0x0;
}

//===========================================================================
// No more.
//===========================================================================

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DSP28335使用FIFO的串口中断总结 的相关文章

  • C语言环形队列缓冲-FIFO_RingBuffer

    ring buffer h span class token macro property span class token directive hash span span class token directive keyword if
  • Linux 进程间通信基础(四)--fifo管道

    最近正好有一些空余时间 xff0c 在这里总结一下曾经使用过的Linux进程间通信的几种方法 xff0c 贴出来帮助有需要的人 xff0c 也有助于自己总结经验加深理解 上一次我们梳理了pipe管道的相关知识 xff0c 这一次梳理fifo
  • the read modes of FPGA FIFO —FWFT and Standard

    1 FWFT first word fall through 模式 xff1a 当rd en由低跳变到高电平时候 xff0c FIFO读出的数据FIFO dout 立即读出来 2 Standard 标准模式 xff1a 当rd en由低跳变
  • DSP28335的PWM信号

    DSP的PWM信号 简介 DSP28335共12路16位的ePWM xff0c 能进行频率和占空比控制 ePWM的时钟TBCLK 61 SYSCLKOUT HSPCLKDIV CLKDIV PWM信号频率由时基周期寄存器TBPDR和时基计数
  • DSP28335 CAN模块详解

    1 CAN2 0B协议简述 TMS320F28335上有2个增强型CAN总线控制器 xff0c 符合CAN2 0B协议 xff0c 其总线波特率可达到1Mbps 符合CAN2 0B协议的数据帧为扩展数据帧 xff0c 即采用29位标识符 数
  • FIFO队列(First In First Out)和优先队列

    queue lt 类型名 gt q q size 返回队列中元素个数 q empty 若队列为空 xff0c 返回true xff0c 否则返回false q pop 删除队首元素 xff0c 但不返回其值 q front 返回队首元素的值
  • DSP28335使用FIFO的串口中断总结

    一 串行通信与并行通信 DSP控制器间 xff0c DSP控制器与外部设备间交换信息 xff0c 通信 xff0c 可采取的通信方式主要两大类1 串行通信 2 并行通信 并行通信一般包括多条数据线 多条控制线和状态线 xff0c 传输速度快
  • STM32串口通信(串口中断、FIFO机制)之安富莱代码学习笔记

    创建串口设备结构体 span class token keyword typedef span span class token keyword struct span span class token punctuation span U
  • (转)stm32F4-----DMA的FIFO作用和用法

    在STM32F4系列中DMA增加了个FIFO 这个FIFO的作用是什么 xff1f 当我使能这个FIFO时 xff08 DMA InitStructure DMA FIFOMode 61 DMA FIFOMode Enable xff09
  • DSP28335 高速modbus代码实现

    程序特点 不使用while循环速度尽可能快速除去程序运行时间 xff0c 没有多余等待时间优化CRC校验方式 头文件modbus h span class token macro property span class token dire
  • DSP28335 SCI FIFO深度设置

    SCI工作在FIFO模式下一般是因为所传输的信息并不是以一个字节为单位 xff0c 而是以多个字节组成的一个包为单位的 如果一包数据包括10个字节 xff0c 可以设置FIFO接收中断为10个字节时产生中断 设置以后 xff0c 每接收到1
  • Linux进程通信:命名管道FIFO小结

    Linux下进程之间通信可以用命名管道FIFO完成 命名管道是一种特殊类型的文件 因为Linux中所有事物都是文件 它在文件系统中以文件名的形式存在 在程序中 我们可以使用两个不同的函数调用来建立管道 include
  • AXI总线之DDR控制器的实现

    由于FPGA的内部RAM资源实在有限 同时又不得不面临大数据量缓存的问题 因此 将DDR进行共享成了最为直接有效的解决方案 设计目标 PL端有多个需要大量数据缓存的通道 让每个通道都将DDR作为外部缓存 FIFO 注意 总的突发在1Gbps
  • RAM IP core(2)

    例化5种RAM IP core 1 单端口RAM Single port RAM RAM参数设置如上图所示 输入输出位宽都为8位 深度为16 采用一级输出寄存器 读写模式为no change 用COE文件对RAM进行初始化 关于COE文件的
  • Go 中的 Unix FIFO?

    有没有办法用Go语言创建unix FIFO 没有Mkfifo nor Mknod in os包 尽管我预计命名的 FIFO 主要用于 posix 操作系统 事实上 有一个创建未命名的 FIFO 管道 的函数 但没有创建命名管道的函数 我是唯
  • 堆栈空异常

    我收到堆栈空异常 如果堆栈不为空 有 16 个项目 这怎么可能 我得到了错误的快照 有人可以解释一下吗 You must使用类似的东西时同步访问Stack
  • SQL 先进先出忠诚点

    各位开发人员和分析师 我在 SQL 方面有一些经验 并且已经求助于类似的帖子 然而 这有点小众 预先感谢您的帮助 我有以下数据集 已编辑 道歉 Setup CREATE TABLE CustomerPoints CustomerID INT
  • 如何保证 ThreadPoolExecutor 中的 FIFO 执行顺序

    我用这行代码创建一个 ThreadPoolExecutor private ExecutorService executor new ThreadPoolExecutor 5 10 120 TimeUnit SECONDS new Arra
  • 检测程序何时打开 fifo

    我遇到一种情况 我需要检查 fifo 的另一侧是否已打开它 但是我不能使用 open 因为否则程序将开始执行操作 为什么我必须这样做 我有一个程序 监视器 来启动服务器程序 都是我创建的 监视器使用此 fifo 进行通信 因为监视器可以在服
  • 在C中读/写结构到fifo

    我正在尝试使用命名管道在进程之间传递结构 我在尝试打开管道非阻塞模式时陷入困境 这是我写入 fifo 的代码 void writeUpdate Create fifo for writing updates strcpy fifo writ

随机推荐

  • Latex (一) 安装和环境变量的设置

    一 安装 Tex有很多不同的版本 xff0c 很多人喜欢用ctex xff0c 但是最推荐是官方版本Texlive 搜了很多资料 xff0c 一般windows的话 xff0c 可以将Tex live 43 Tex studio作为标配 x
  • KITTI 数据集 参数—— tracking devkit中的rotation_y和alpha角

    根据devkit中的readme txt和cs overview pdf的描述以及根据通过对数据集做的小实验总结的 xff0c 如果过有错误的地方欢迎指正 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 拯救者Y7000P 安装Ubuntu16.04问题解决

    先列一下问题 xff1a 1 wifi开不来了 xff1b 2 触摸板没法用 3 休眠后打不开 目前1 3 xff0c 解决了 xff0c 但是2依然没法解决 xff0c 不过问题不大 xff0c 大不了用鼠标 首先 xff0c 问题的原因
  • VSCode python调试库代码以及添加相关扩展支持opencv

    调试python 代码的时候可以再launch json 文件中添加 justMycode 34 false 来调试安装的包的代码 由于opencv 底层调用的C xff0c 所以如果要在代码提示中正确提示可能要安装额外插件 xff1a 比
  • vscode python包的引用一些问题

    个人使用vscode碰到的一些python包的引用问题以及尝试解决的一些办法 xff0c 可能只适用我自己的情况 项目目录大概如下 xff1a lib是根目录下的一个文件夹 xff0c 里面每个文件夹都是一个python 包 xff0c 都
  • MATLAB 矩阵的化简rref()函数

    在用MATLAB求解线性方程组的时候 xff0c 可以使用 rref 函数对矩阵进行化简 xff0c 从而很方便直观的得到原方程的解 xff0c 举一个简单的例子 xff1a 解下列线性方程组 则用MATLAB的rref函数解上述方程组的代
  • MATLAB求符号函数的函数值的方法

    在MATLAB中定义函数的方法有许多种 xff0c 比较常用的一种是定义符号变量 x 和 y 举一个简单的例子 xff1a 对函数 y 61 x 2 用上述方法的MATLAB语言如下 xff1a syms x y y 61 x 2 要想画出
  • C++寻找数组最大值和最小值

    寻找数组中的最大最小值 include lt iostream gt using namespace std include lt algorithm gt int main int n cin gt gt n int p 61 new i
  • Excel如何同时查找多个数据

    在使用多个excel表的时候 xff0c 有时需要在一个表中查找另一个表中的某些信息 xff0c 怎样能一步到位 xff0c 将所有要查找的信息一次找出来而不是一个个的Ctrl 43 F xff1f 这是前几天帮辅导员老师统计新生的数据时遇
  • python tkinter 全部组件(widget)及事件类型(event)一览

    对于一个简单的GUI程序设计来说 xff0c 我觉得无非就是三个要素 xff0c widget xff08 部件 xff09 xff0c layout xff08 布局 xff09 xff0c event xff08 事件的响应 xff09
  • DS18B20 1-WIRE ROM搜索算法详解

    转自 xff1a http blog sina com cn s blog 57ad1bd20102uxxw html 1 WIRE 搜索算法详解 xff08 1 xff09 0 前言 美信公司 xff08 http www maximin
  • 关于python tkinter 多线程依然无响应问题

    今天解决了一个GUI程序的多线程问题 因为GUI程序在执行高IO操作的时候容易出现假死和无响应的状态 xff0c 所以需要用到多线程 但我的程序开了线程之后依然是无响应状态 几次尝试 xff0c 终于找到问题所在 1 首先 xff0c 我的
  • Ubuntu内核的查看、更新、卸载、取消及启用自动更新

    1 查看当前内核版本 xff1a uname r 2 升级内核 xff1a sudo apt get update sudo apt cache search linux image 查看可用内核 在选择合适的内核后 xff0c sudo
  • 孤立森林(Isolation Forest)

    背景 现有的异常检测方法主要是通过对正常样本的描述 xff0c 给出一个正常样本在特征空间中的区域 xff0c 对于不在这个区域中的样本 xff0c 视为异常 这些方法的主要缺点是 xff0c 异常检测器只会对正常样本的描述做优化 xff0
  • FreeRTOS三种数据结构区别(StreamBuffer,MessageBuffer,Queue)

    Queue队列是最基本的数据结构 xff0c 在FreeRTOS v10 0后提供了另外两种高级数据结构为Streambuffer和MessageBuffer xff0c 称为流式缓冲区和消息缓冲区 FreeRTOS 嵌入式系统开源 Fre
  • ubuntu16安装librealsense 以及在ros上使用 [深度相机sr300]

    记录ubuntu16安装librealsense 和ros包的过程 xff0c 还有一些遇到的问题 温馨提醒 如果按照下面步骤每一步完成 xff08 都没报错 xff09 xff0c 还是不能显示图像 xff0c 换个usb3 0口试试或者
  • 原生安卓苹果APP-java抢单派单系统平台源码

    简介 xff1a java源码 派单系统平台源码完整版带项目说明 网盘下载地址 xff1a http kekewl cc 9qsCp179URb0 图片 xff1a
  • 基于Android和OpenCV的物体跟随系统设计 需要留言

    本设计为基于Android和OpenCV的物体跟随系统设计 本文对基于计算机视觉的物体跟随系统的特点和应用领域 国内外的研究现状及其发展分别做出了较详尽介绍 并且按照社会科技化进步的要求 xff0c 给出了具有参考意义的智能跟随模块系统 根
  • 【Linux C王者归来】【第十一章】【进程控制】

    1 程序可以有多个进程 xff0c 一个进程与进程id11 对应 2 PROC中的数字对应id号 xff0c getpid和getppid可以获得进程id父进程id 3 getuid geteuid 获得进程用户id和有效用户id 4 ge
  • DSP28335使用FIFO的串口中断总结

    一 串行通信与并行通信 DSP控制器间 xff0c DSP控制器与外部设备间交换信息 xff0c 通信 xff0c 可采取的通信方式主要两大类1 串行通信 2 并行通信 并行通信一般包括多条数据线 多条控制线和状态线 xff0c 传输速度快