基于MSP430红外循迹小车

2023-05-16

2021 个人公众号“高瞻猿瞩”,会在其中发布一些有趣或是实用的编程内容,大部分都是些轻松加愉快的内容,欢迎大家前来看看!

可在公众号恢复关键词“430”、“51”、“树莓派”、“循迹小车测试视频”可以获取相关资源。

2019.08.09补充:关于P1  P4  P6是干啥的

1、P6简单,是输入嘛,肯定就是接受寻迹模块红外的返回值了,没有什么疑义。

2、P4和P1共同控制电机,P1的存在是干什么的?这就与L298N的工作模式相关了,下面有个L298N的图示,对照那个图示来说。

输出A和输出B是连接电机的,电机串联也好,并联也罢,这无所谓。逻辑输入端连接的是P4,也就是控制每个电机的正转反转,逻辑表下面也有,这也没啥问题。

输出通道A和B使能端,使能是啥意思?就是赋予权利,让它可以工作呗,我们先不管P1,也就是不连接P1,在跳线帽连接的状态下,A、B两个使能端都是高电平的,或理解为3.3V,这时候输出通道A和B是可以工作的,再配合上边的P4的逻辑输入,小车无论前进、倒退或转弯都是全速前进的,没办法控制速度。想要控制速度,就要用到PWM,这时候把使能端的跳线帽拔掉,连接P1,也就是两个PWM输出端,通过控制P1端输出的占空比,就能实现调速,而不是一直全速前进后退。其中代码里注释有个地方也写了,转弯的时候由于速度太快有时候是反应不过来的,怎么办?左转的时候让左边反转,右边正转,转弯的速度就提上来了。

----------------------------手动分割线-----------------------------

2019.08.08补充:

这篇博客最近访问有点频繁,,

1、小车循迹的轨道是用黑色绝缘胶带贴出来的轨道。

2、工程中需要加入Config.h文件,里面包含了时钟配置,文件在最底部,copy一份导入到工程中即可,整个工程只有这两个文件,本篇博客内都有,自己复制到工程中即可。

3、我用的单片机型号为MSP430f149,不同系列寄存器可能不同,但PWM的原理是不变的。

4、循迹采用了小车前部放置红外,四路循迹,下图这玩意。

----------------------------------------------------------------------------------------------------------------

利用红外避障模块进行三路循迹,小车采用直流电机,用L298N驱动电机以及给单片机供电,循迹模块由于红外的不用,中间模块对于黑色的返回值是1, 白色返回值是0,而两侧的模块对于黑色的返回值是0,白色的返回值是1,(当然,红外连接的是有AD转换作用的模块);

  电机的控制利用MSP430生成的PWM方波来进行控制,可调速。.

  代码:

#include <msp430x14x.h>  
#include "Config.h"     
uchar count = 0;
void Init_PWM(void)
{
   P1SEL |= BIT2;  //TA1从P1.2输出
   P1DIR |= BIT2;  //TA1从P1.2输出
   P1SEL |= BIT3;  //TA2从P1.3输出
   P1DIR |= BIT3; //TA2从P1.3输出 
   P6SEL = 0x00;
   P6DIR = 0x00;    //设置P6为输入模式,读取来自红外避障模块的信息
   TACTL |= MC_1 + TASSEL_1;  //时钟源选择ACLK,增计数模式 TA设置 
   TACCTL1 = OUTMOD_7; //模式7 高电平PWM输出 PWM设置
   TACCTL2 = OUTMOD_7; //模式7 高电平PWM输出
   TACCR0 = 33-1;  //PWM总周期=32个ACLK周期 约等于1000Hz 设置PWM的周期
   //TACCR1 = 16;    //TA1 占空比= 16/32=50% 设置占空比
   //TACCR2 = 16;    //TA2 占空比= 16/32=50% 
}
void Set_PWM1_Duty(uchar duty)    //设置PWM占空比
{
     TACCR1 = duty;
}
void Set_PWM2_Duty(uchar duty)
{
     TACCR2 = duty;
}
void stop()
{
    P4OUT=0X0f;
}
void zhizou(char D)
{
    if(D==1)
    {
     P4OUT = 0X05;
     Set_PWM1_Duty(12);
     Set_PWM2_Duty(12);
    }
    if(D==2)
    {
        P4OUT = 0x0a;
        Set_PWM1_Duty(10);
        Set_PWM2_Duty(10);
    }
}
void left(char L)
{
    P4OUT = 0x09;
    if(L==1)
    {
        Set_PWM1_Duty(24);    //左转采用左轮倒转右论正转的方式,这种转弯方式比较快,右转同理
        Set_PWM2_Duty(32);
    }
    if(L==2)
    {
        Set_PWM1_Duty(50);
        Set_PWM2_Duty(50);
    }
}
void right(char R)
{
    P4OUT = 0x06;
    if(R==1)
    {
        Set_PWM1_Duty(32);
        Set_PWM2_Duty(24);
    }
    if(R==2)
    {
        Set_PWM1_Duty(50);
        Set_PWM2_Duty(50);
    }
}
void main()
{
  WDTCTL = WDTPW + WDTHOLD ;   //关闭开门狗
  Clock_Init();
  UART_Init();
  Init_PWM();
  P4SEL = 0x00;
  P4DIR = 0xff;    //设置为输出模式用来控制电机
  //Set_PWM1_Duty(16);
  //Set_PWM2_Duty(16);
  while(1)
  {
      //zhizou(1);
      switch(P6IN&0x0e)
        {
            case 0x0e:zhizou(1);break;
            //case 0x1c:left(2);break;
             case 0x02:left(1);break;
              //case 0x07:right(2);break;
              case 0x08:right(1);break;
              default:zhizou(1); break;
         }
  }
}

Config.h

********************************************************************/
//延时函数,IAR自带,经常使用到
#define CPU_F ((double)8000000)   //外部高频晶振8MHZ
//#define CPU_F ((double)32768)   //外部低频晶振32.768KHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) 
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 
 
//自定义数据结构,方便使用
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
 
//8个LED灯,连接在P6口,可通过断开电源停止使用,ADC使用时断开电源
#define LED8DIR         P6DIR
#define LED8            P6OUT                             //P6口接LED灯,8个
 
//4个独立按键连接在P10~P13
#define KeyPort         P1IN                              //独立键盘接在P10~P13
 
//串口波特率计算,当BRCLK=CPU_F时用下面的公式可以计算,否则要根据设置加入分频系数
#define baud           9600                                //设置波特率的大小
#define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特率计算公式
#define baud_h         (uchar)(baud_setting>>8)            //提取高位
#define baud_l         (uchar)(baud_setting)               //低位
 
//RS485控制管脚,CTR用于控制RS485处于收或者发状态
#define RS485_CTR1      P5OUT |= BIT2;          //控制线置高,RS485发送状态
#define RS485_CTR0      P5OUT &= ~BIT2;         //控制线置低,RS485接收状态
 
//2.8寸TFT彩屏显示控制相关硬件配置
#define RS_CLR	        P5OUT &= ~BIT5           //RS置低
#define RS_SET	        P5OUT |=  BIT5           //RS置高
 
#define RW_CLR	        P5OUT &= ~BIT6           //RW置低
#define RW_SET	        P5OUT |=  BIT6           //RW置高
 
#define RD_CLR	        P5OUT &= ~BIT7           //E置低
#define RD_SET	        P5OUT |=  BIT7           //E置高
 
#define CS_CLR	        P5OUT &= ~BIT0            //CS置低
#define CS_SET	        P5OUT |=  BIT0            //CS置高
 
#define RST_CLR	        P5OUT &= ~BIT3            //RST置低
#define RST_SET	        P5OUT |=  BIT3            //RST置高
 
#define LE_CLR	        P5OUT &= ~BIT1            //LE置低
#define LE_SET	        P5OUT |=  BIT1            //LE置高
 
//2.8寸TFT彩屏触摸屏控制相关硬件配置
#define PEN_CLR	        P2OUT &= ~BIT0           //PEN置低,触碰触摸屏时,Penirq引脚由未触摸时的高电平变为低电平
#define PEN_SET	        P2OUT |=  BIT0           //PEN置高
#define PEN             (P2IN & 0x01)            //P2.0输入的值
 
#define TPDO_CLR	P2OUT &= ~BIT1           //TPDO置低
#define TPDO_SET	P2OUT |=  BIT1           //TPDO置高
#define TPDOUT          ((P2IN>>1)&0x01)         //P2.1输入的值
 
#define BUSY_CLR	P2OUT &= ~BIT3           //BUSY置低
#define BUSY_SET	P2OUT |=  BIT3           //BUSY置高
 
#define TPDI_CLR	P2OUT &= ~BIT4            //TPDI置低
#define TPDI_SET	P2OUT |=  BIT4            //TPDI置高
 
#define TPCS_CLR	P2OUT &= ~BIT5            //TPCS置低
#define TPCS_SET	P2OUT |=  BIT5            //TPCS置高
 
#define TPCLK_CLR	P2OUT &= ~BIT6            //TPCLK置低
#define TPCLK_SET	P2OUT |=  BIT6            //TPCLK置高
 
//彩屏/12864液晶/1602液晶的数据口,三液晶共用
#define DataDIR         P4DIR                     //数据口方向
#define DataPort        P4OUT                     //P4口为数据口
 
//12864/1602液晶控制管脚
#define RS_CLR	        P5OUT &= ~BIT5           //RS置低
#define RS_SET	        P5OUT |=  BIT5           //RS置高
 
#define RW_CLR	        P5OUT &= ~BIT6           //RW置低
#define RW_SET	        P5OUT |=  BIT6           //RW置高
 
#define EN_CLR	        P5OUT &= ~BIT7           //E置低
#define EN_SET	        P5OUT |=  BIT7           //E置高
 
#define PSB_CLR	        P5OUT &= ~BIT0            //PSB置低,串口方式
#define PSB_SET	        P5OUT |=  BIT0            //PSB置高,并口方式
 
#define RESET_CLR	P5OUT &= ~BIT1            //RST置低
#define RESET_SET	P5OUT |= BIT1             //RST置高
 
//12864应用指令集
#define CLEAR_SCREEN	0x01		          //清屏指令:清屏且AC值为00H
#define AC_INIT		0x02		          //将AC设置为00H。且游标移到原点位置
#define CURSE_ADD	0x06		          //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
#define FUN_MODE	0x30		          //工作模式:8位基本指令集
#define DISPLAY_ON	0x0c		          //显示开,显示游标,且游标位置反白
#define DISPLAY_OFF	0x08		          //显示关
#define CURSE_DIR	0x14		          //游标向右移动:AC=AC+1
#define SET_CG_AC	0x40		          //设置AC,范围为:00H~3FH
#define SET_DD_AC	0x80                      //设置DDRAM AC
#define FUN_MODEK	0x36		          //工作模式:8位扩展指令集
 
//颜色代码,TFT显示用
#define White          0xFFFF           													//显示颜色代码
#define Black          0x0000
#define Blue           0x001F
#define Blue2          0x051F
#define Red            0xF800
#define Magenta        0xF81F
#define Green          0x07E0
#define Cyan           0x7FFF
#define Yellow         0xFFE0
 
//NRF2401模块控制线
#define  RF24L01_CE_0        P1OUT &=~BIT5         //CE在P15         
#define  RF24L01_CE_1        P1OUT |= BIT5        
 
#define  RF24L01_CSN_0       P2OUT &=~BIT7         //CS在P27
#define  RF24L01_CSN_1       P2OUT |= BIT7     
 
#define  RF24L01_SCK_0       P3OUT &=~BIT3         //SCK在P33
#define  RF24L01_SCK_1       P3OUT |= BIT3   
 
#define  RF24L01_MISO_0      P3OUT &=~BIT2         //MISO在P32
#define  RF24L01_MISO_1      P3OUT |= BIT2
 
#define  RF24L01_MOSI_0      P3OUT &=~BIT1         //MOSI在P31
#define  RF24L01_MOSI_1      P3OUT |= BIT1
 
#define  RF24L01_IRQ_0       P1OUT &=~BIT4         //IRQ在P14     
#define  RF24L01_IRQ_1       P1OUT |= BIT4
 
//DS18B20控制脚,单脚控制
#define DQ_IN	        P1DIR &= ~BIT7		  //设置输入,DS18B20接单片机P53口
#define DQ_OUT	        P1DIR |= BIT7		  //设置输出
#define DQ_CLR	        P1OUT &= ~BIT7	          //置低电平
#define DQ_SET	        P1OUT |= BIT7	          //置高电平
#define DQ_R	        P1IN & BIT7		  //读电平
 
//红外接收头H1838控制脚,单脚控制
#define RED_IN	        P1DIR &= ~BIT6	          //设置输入,红外接收头接单片机PE3口
#define RED_OUT	        P1DIR |=  BIT6	          //设置输出
#define RED_L	        P1OUT &= ~BIT6	          //置低电平
#define RED_H	        P1OUT |= BIT6             //置高电平
#define RED_R	        (P1IN & BIT6)	          //读电平
 
//***********************************************************************
//                   系统时钟初始化,外部8M晶振
//***********************************************************************
void Clock_Init()
{
  uchar i;
  BCSCTL1&=~XT2OFF;                 //打开XT2振荡器
  BCSCTL2|=SELM1+SELS;              //MCLK为8MHZ,SMCLK为8MHZ
  do{
    IFG1&=~OFIFG;                   //清楚振荡器错误标志
    for(i=0;i<100;i++)
       _NOP();
  }
  while((IFG1&OFIFG)!=0);           //如果标志位1,则继续循环等待
  IFG1&=~OFIFG; 
}
 
//***********************************************************************
//                   系统时钟初始化,内部RC晶振
//***********************************************************************
void Clock_Init_Inc()
{
  uchar i;
  
 // DCOCTL = DCO0 + DCO1 + DCO2;              // Max DCO
 // BCSCTL1 = RSEL0 + RSEL1 + RSEL2;          // XT2on, max RSEL
  
  DCOCTL = 0x60 + 0x00;                       //DCO约3MHZ,3030KHZ
  BCSCTL1 = DIVA_0 + 0x07;
  BCSCTL2 = SELM_2 + DIVM_0 + SELS + DIVS_0;
}
 
//***********************************************************************
//                   系统时钟初始化,外部32.768K晶振
//***********************************************************************
void Clock_Init_Ex32768()
{
  uchar i;
 
  BCSCTL2|=SELM1 + SELM0 + SELS;    //MCLK为32.768KHZ,SMCLK为8MHZ
  do{
    IFG1&=~OFIFG;                   //清楚振荡器错误标志
    for(i=0;i<100;i++)
       _NOP();
  }
  while((IFG1&OFIFG)!=0);           //如果标志位1,则继续循环等待
  IFG1&=~OFIFG; 
}
 
//***********************************************************************
//               MSP430内部看门狗初始化
//***********************************************************************
void WDT_Init()
{
   WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
}
 


如有未完善之处,请留言。

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

基于MSP430红外循迹小车 的相关文章

  • 离散 排斥或与相容或的区别

    1 相同之处 xff1a 就是 或 2 不同之处 xff1a 一个排斥 xff0c 一个相容 p xff1a 2是偶数 q xff1a 2是奇数 xff0c 这种情况下是排斥或 xff0c 也即一个命题成立 xff0c 则其他命题不成立 p
  • Latex中ACM-Reference-Format顺序与论文引用顺序不一致solution

    在第一次编译的时候 xff0c 先使用 bibliographystyle unsrt 而非模板的 bibliographystyle ACM Reference Format 的进行按顺序的编译 在之后的编译中 xff0c 使用 bibl
  • 正则表达式快速入门

    目录 1 正则表达式是什么 xff0c 有什么作用2 定位符例子2 1想要搜索以 001 开头的文件2 2想要搜索以 ab 结尾的文件2 3搜索单词开头为 zh 34 的文件2 4搜索单词结尾为 zh 34 的文件2 5搜索单词中间为 zh
  • JAVASE基础(一)

    这里写目录标题 一 javaSE基础1 jdk文档2 代码量统计工具3 文档注释4 反编译工具5 JDK JRE JVM xff08 java虚拟环境 xff09 61 61 6 变量命名规则 61 61 7 变量的作用域8 数据类型9 进
  • JAVASE基础(二)

    这里写目录标题 JAVASE基础11 科学计数法12 编码和字符集12 编译格式问题13 类型转换类型级别自动类型转换强制类型转换特殊情况 14 final修饰符a 修饰变量b 修饰方法c 修饰类 15 scanner使用16 两个数交换引
  • 关于gcc编译 -I -L -l的使用

    gcc o hello hello c I home hello include L home hello lib lworld 参数说明 xff1a I home hello include表示将 home hello include 目
  • Matlab彩色图像的rgb分量获取,彩色通道互换

    1 原图像 2 matlab代码 xff0c 将图像的绿色和蓝色通道进行互换 A 61 imread 39 花朵 jpg 39 h w d 61 size A R 61 A 1 获取红色分量 G 61 A 2 获取绿色分量 B 61 A 3
  • 使用Xavier读取RealSense D435i的踩坑经历

    由于项目需要 xff0c 最近开始研究通过Xavier运行VINS的方法 xff0c 使用的传感器是Intel的RealSense xff0c 但是Xavier对RealSense的支持却不怎么好 xff0c 下面介绍一下躲坑方法 xff0
  • 宏函数详解

    宏函数 xff1a STL模板 实现函数的复用性 函数 xff1a 可以传递参数 但是不能将类型作为参数传递 例如 xff1a 一个开辟内存的函数 xff1a define Malloc type size type malloc size
  • UBUNTU将新路径添加到ROS_PACKAGE_PATH中。

    first 查看路径 chen 64 chen HP echo ROS PACKAGE PATH opt ros indigo share opt ros indigo stacks 添加 chen 64 chen HP echo 34 e
  • Visual Studio实现多核并行编译

    Visual Studio 大工程项目的编译时间较长 xff0c 可以利用多核CPU的优势 xff0c 实现并行编译 xff0c 设置并行编译方法示例如下 xff1a 1 在 ClassView 中选取某项目的 Properties xff
  • 五参数超声波风速风向传感器

    五参数超声波风速风向传感器介绍风速风向基于超声波原理研发的风速风向测量仪器 xff0c 利用发送的声波脉冲 xff0c 测量接收端的时间或频率 xff08 多普勒变换 xff09 差别来计算风速和风向 该传感器可以同时测量风速 xff0c
  • Postman 的使用教程(详细)

    Postman 使用教程 1 是什么 Postman 是一个接口测试工具软件 xff0c 可以帮助开发人员管理测试接口 官网 xff1a https www getpostman com 2 安装 建议通过官网下载安装 xff0c 不要去那
  • 《Qt 5.9 C++开发指南》第3章 Qt类库概述【详细摘要】

    Qt是一个用标准C 43 43 编写的跨平台开发类库 xff0c 它对标准C 43 43 进行了扩展 xff0c 引入了元对象系统 信号与槽 属性等特性 xff0c 使得应用程序开发变得更高效 本章介绍Qt的这些核心特点 xff0c 对于理
  • c++中引用相关概念总结

    1 先从下面这两段代码的运行结果开始看起 xff1a int a 61 10 在内存上开辟4个字节 xff0c a就代表这个4个字节内存 int p 61 amp a 让一个指针 指向这个4个字节的空间 p 61 20 cout lt lt
  • STM32串口接收中断——基于HAL库

    写在前面 最近需要使用一款STM32L4系列的芯片进行开发 xff0c 需要学习使用HAL库 在进行串口中断使用的时候遇到了一些小麻烦 xff0c 写下解决方案供大家参考 1 UART相关的头文件引用错误 由于本人直接使用MDK进行开发 x
  • 相机标定-标定板pdf生成网站

    推荐一个可以自动生成相机标定的标定板文件的网站 xff1a https calib io pages camera calibration pattern generator
  • 什么是卫星通信中的星基增强系统(SBAS)

    背景 最新的通用航空标准中要求航空电子设备接收器应配备抗干扰能力 xff0c 同时也能够识别和处理故意干扰 xff0c 如欺骗 这项新规定代表了民用航空对全球导航卫星系统信号干扰引起的风险的认识提升 xff0c 而这也是军用航空一直面临的问
  • 你了解RTK技术吗?—— 揭秘GNSS中的定位技术

    上期文章中我们一起探讨了GNSS仿真及其对测试验证的重要意义 xff0c 今天我们将一起走进GNSS中的定位技术 RTK技术 什么是RTK技术 xff1f 传统RTK技术与网络RTK技术又有什么区别呢 xff1f 随着GNSS系统的迅速发展
  • STM32 Keil下编程实现LED灯点亮与闪烁

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 原理图1 STM32F103C8T62 LED23 LED3 二 Keil代码1 Led h2 Led c3 main

随机推荐

  • STM32Keil下编程实现蜂鸣器长鸣

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 原理图1 STM32F103C8T62 BELL蜂鸣器 二 Keil代码1 Beep c2 Beep h3 main c
  • STM32 NRF24L01实现无线传输

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 原理图1 STM32F103C8T62 NRF24L01 二 Keil代码1 SPI NRF2401 C2 SPI NR
  • C语言编程的步骤

    C是一种编译性语言 如果你以前从来没有接触过任何的编程语言 xff0c 那么你则需要学习一下一个拆分的逻辑思维 当我们想要写一个项目或者软件的时候 xff0c 我们需要把这个整体拆分为 xff17 个步骤 xff0c 这样也会让你的思路看起
  • 单片机的四种烧写方式

    JTAG SWD ISP SWIM详解单片机的四种烧写方式 单片机是一种可编程控制器 xff0c 搭好硬件电路后 xff0c 可以利用程序实现很多非常复杂的逻辑功能 xff0c 与纯硬件电路相比 xff0c 简化了硬件外围的设计 方便了逻辑
  • STM32新建keil工程具体步骤(详细)

    1 新建本地工程文件夹 们在本地电脑上新建一个 工程模板 文件夹 xff0c 在它之下再新建 6 个文件夹 xff1a 2 添加库文件到相应文件夹 把 ST 标准库必要的文件复制到工程模版对应文件夹的目录下 3 KEIL5新建工程 打开 K
  • STM32固件库实现按键控制

    文章目录 前言一 原理图二 软件设计三 代码1 按键引脚宏定义2 按键 GPIO 初始化函数3 检测按键的状态4 主函数 四 下载验证五 收获1 程序如何换行2 异或 前言 使用固件库实现按键控制LED 提示 xff1a 以下是本篇文章正文
  • c++模板

    1 函数模板 普通函数 void myPrint int a int b cout lt lt 34 普通函数 34 lt lt endl cout lt lt 34 a 61 34 lt lt a lt lt 34 b 61 34 lt
  • 通信方式的基本概念:串行与并行通信 全双工、半双工和单工 同步与异步 通信的速率

    通信的基本概念 在计算机的设备与设备之间或集成电路之间常常需要进行数据传输 xff0c 这里简答介绍这些通信的基本概念 1 串行与并行通信 2 全双工 半双工和单工 3 同步与异步 在同步通讯中 xff0c 数据信号所传输的内容绝大部分就是
  • STM32外部中断事件控制器EXTI概念及使用方法

    文章目录 前言一 EXTI功能框图二 使用方法1 EXTI InitTypeDef 初始化结构体2 实现步骤 三 代码实现1 EXTI C文件2 EXTI H文件2 MAIN C 前言 EXTI External interrupt eve
  • STM32中断NVIC的概念及中断编程步骤

    文章目录 前言一 NVIC 简介1 NVIC 寄存器简介2 NVIC 中断配置固件库 二 优先级的定义1 优先级定义2 优先级分组 三 中断编程步骤1 使能外设某个中断2 初始化 NVIC InitTypeDef 结构体3 编写中断服务函数
  • 【论文阅读笔记】基于RGBD相机的四旋翼多小快速运动目标感知与避障

    文章名称 xff1a Perception and Avoidance of Multiple Small Fast Moving Objects for Quadrotors with Only Low cost RGBD Camera
  • vscode配置C++调试

    vscode打开一个目录后生成 vscode目录 xff0c 如果配置有问题 xff0c 可以把 vscode删掉 调试首先点击左侧按钮进入run and debug xff0c 这里面默认是什么都没有的 xff0c 点击选择C 43 43
  • Java利用技巧——通过JNI加载dll

    0x00 前言 Java可以通过JNI接口访问本地的动态连接库 xff0c 从而扩展Java的功能 本文将以Tomcat环境为例 xff0c 介绍通过jsp加载dll的方法 xff0c 开源代码 xff0c 记录细节 0x01 简介 本文将
  • LeetCode-两数之和

    给定一个整数数组 nums 和一个整数目标值 target xff0c 请你在该数组中找出 和为目标值 target 的那 两个 整数 xff0c 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 xff0c 数组中同一个元素
  • LeetCode-子数组的最小值之和

    给定一个整数数组 arr xff0c 找到 min b 的总和 xff0c 其中 b 的范围为 arr 的每个 xff08 连续 xff09 子数组 由于答案可能很大 xff0c 因此 返回答案模 10 9 43 7 实例1 输入 xff1
  • LeetCode-只出现一次的数字

    给定一个非空整数数组 xff0c 除了某个元素只出现一次以外 xff0c 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 xff1a 你的算法应该具有线性时间复杂度 你可以不使用额外空间来实现吗 xff1f 输入 2 2 1 输出
  • 关于结构体成员变量用 . 还是 ->

    之前一直认为引用结构体成员 xff0c 指针的话用 gt xff0c 成员变量的话用 但是一直都没去深究过 xff0c 今天遇到一个复杂的 xff0c 决心去了解一下 typedef struct IPC ISP CFG DATA IPC
  • 顺序表的建立 基本输入输出

    输入数据的个数n 输入n个数 然后输出 input 5 1 2 3 4 5 output 1 2 3 4 5 以下是代码 xff1a include lt stdio h gt include lt stdlib h gt define l
  • 离散题目18--求传递闭包

    离散题目18 Time Limit 1000MS Memory Limit 65536KB Submit Statistic Problem Description 给出一个集合A和A上的关系R xff0c 求关系R的传递闭包 例如 xff
  • 基于MSP430红外循迹小车

    2021 个人公众号 高瞻猿瞩 xff0c 会在其中发布一些有趣或是实用的编程内容 xff0c 大部分都是些轻松加愉快的内容 xff0c 欢迎大家前来看看 xff01 可在公众号恢复关键词 430 51 树莓派 循迹小车测试视频 可以获取相