欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    飞控开发基础教程7开源编队无人机SPI气压计数据获取.docx

    • 资源ID:386946       资源大小:134.89KB        全文页数:10页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    飞控开发基础教程7开源编队无人机SPI气压计数据获取.docx

    COCOF1Y教程疯壳无人机系列目录.1一、SP1o6简介二、气压计数据获取实验A1开源编队无人机A1OPENSOURCEFORMATIONDRONE高级功能Q©激光,压光波定点有头无头3D型治双定高双模式令公QfH©4)W1F1aB传遥控控制视觉追踪初觉追踪视觉追除控制飞行图码强色形状/扁日七)视觉跟丽图形化多机支持图形化自主巡线A1语音控制3动小车编队飞行编程飞行官网地址:http:/www.fengke.c1ubSPI(气压计数据获取)一、SP1o6简介SP106是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SP106-001,歌尔是全球领先的MEMS厂家,SP1o6利用歌尔多年积累的MEMS开发技术,通过搭载高精度的检测用MEMs(MicroE1ectroMechanica1Systems)EP微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SP106是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SP106的内部信号处理器将压力和温度传感器元件的输出转换为24位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。SP106的实物图如下所示。二、气压计数据获取实验气压计数据获取实验使用STM32的硬件SPI与气压计SP106相连接,串口1即UART1通过USB转串口模块连接电脑,把SPI获取到的SP106的原始压力值以及原始温度值数据通过串口1传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把USB转串口的线接到视觉模组接口处。气压计SP106在无人机顶部的白色RGB彩灯盒里,通过软排把SPI及供电口接出,如下图所示。根据原理图,可以看到SP106的的SPI接口分别是:PBI5、PA5、PA6、PA7,如下图所示。SPI5VDGNDSeKMOS1MISOCSICS2CS3-J412345678CON8PAgPA»VSATTJ_TXPA1OUSARTiRXPA11PA!2PABJTMSSUaDOOPA14JTCK令WCtKPAISnD1VBA1VDD1VDD1VD(B×s1OSCjxrooOSCOCTPD1BOOTOPaoutcvtPA1PA2PASPA4PASPA6PA?BoonpB2mx>PBjWtrstpbi口»oI,-34,pPB11B1刖PBIPBIPB1PBITAMratRTCPCBOSC32INPCM0$C$20VTPC11VDoAVSSA(通过调用官方库)0串口1的配置可以参考串口(基础收发),配置代码获取SP106的数据代码编写的思路如下:1管脚配置1、定义结构体2、使能时钟3、填充结构体4、装载结构体2SPI配置1、定义结构体2、使能时钟1112131415161718192021222324252627282930313233343536373839403、填充结构体4、装载结构体5、使能SPI3SP1读写逻辑1、读一个字节2、写一个字节4SP106驱动1、从传感器读2、从传感器写3、ICM20602初始化SP1初始化代码如下:6voidMy_SPI_Init(void)7早8SPI-InitTypeDefSPI_InitStructure;9GPI0_InitTvpeDefGPIO_InitStructure;10RCC_APB2PeriphC1ockCmd(RCC_GPI0_SPI,ENAB1E);RCC_APB2PeriphC1ockCmd(RCC_CE,ENAB1E);RCC_APB2PeriphC1ockCmd(RCC_CSN,ENAB1E);RCC_APB2PeriphC1ockCmd(RCC_APB2Periph_SPI1,ENAB1E);*配置SP1NRF_SPI的SCK,MISO,MOSI引脚*GPIO_InitStructure.GPI0_Pin=SPI_Pin_SCKSPI_Pin_MIS0SPI_Pin_M0SI;GPIO-InitStructure.GPI0_Speed=GPI0_Speed_IONfHz;GPIZ1nitStructure.GPIZMode=GPIO_Mode_AF_PP;复用功能GPI0_Init(GPI0_SPI,&GPI0_InitStructure);*气压计的CSN引脚:*GPI0-InitStructure.GPI0_Pin=Pin_C3;GPI0_InitStructure.GPIO-Speed=GPI0_Speed_10MHz;GPI0_InitStructure.GPI0_Mode=GPI0_Mode_0ut_PP;GPIOZ1nit(GPIO_CSN,&GPI0_InitStructure)7GPIO_SetBits(GPIO_CSN,Pin_C3);SPI_InitStructure.SPI_Direction=SPI_Direction_21ines_Fu1!Dup1ex;双线全双工SPI_InitStructure.SPI_Mode=SPI_1ode_Master:主模式SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;数据大小8位SP11nitStructure.SPCP01=SPI_CPO1_1ow;时钟极性.空闲时为低SPI-InitStructure.SPI_CPHA=SPj1CPHAEdge;第1个边沿有效,上升沿为采样时刻SPI-InitStructure.SPI_NSS=SPI_NSS_Soft;SS信号由软件产生SPI-InitStructure.SPI_BaudRatePresca1er=SPI_BaudRatePresca1er_8;4分频,9MHzSPI-InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;高位在前SPI_InitStructure.SPI_CRCPo1ynomia1=7;SPI_Init(SPI_X,&SPI_InitStructure);SPI_Cmd(SPI_X,ENAB1E):1234567890144444444455u8SPIRW(u8dat)早/*当SP工发送缓冲黯非空时等待*/whi1e(SPII2SGetF1agStatus(SPIX,SPII2SF1AGTXE)=RESET);/*通过SP12发送一字节数据*/SPII2SSendData(SPIX,dat);/*当SPf接收缓冲器为主时等待*/whi1e(SPI_I2S_GetF1agStatus(SPI_XZSPI_12S_F1AG_RXNE)=RESET);*ReturnthebytereadfromtheSPIbus*/returnSPI_I2S_ReceiveData(SPI_X);I52 voidSPI_Transmit(uint8_t*pData,uint16_tSize)53 (一54 for(uint16_ti=0;i<Size;i+)55 056 SPI_RW(pDatai);57 58 59 voidSPIReceive(uint8t*pData,uint16tSize)6061for(uint16_ti=0;i<Size;i+)621-:(63pDatai=SPI_RW(0);64 65 )SP106的初始化代码如下。262u8Drv_Sp10601_Init(void)263(264p_sp10601=Asp10601:*readChipId*/265p_sp10601->i32rawPressure=0;266p_sp10601->i32rawTemperature=0:267p_sp10601->chip_id=sp10601_read(OxOD);268269sp10601_get_ca1ib_param();270271sp10601.rateset(PRESSURE_SENSOR,128,16):272273sp10601.rateset(TENfPERATURE-SENSOR,8,8);274275sp10601_start_continuous(CONTINUOUS_P_AND_T);276277if(p_sp10601->chip_id=0x10)278(279return0:280)281e1se282-'(283return1;284)285)36staticvoidsp10601_write(unsignedcharregadr,unsignedcharva1)37(3839如414243sp106-enab1e(1);SPIRW(regadr);SPI_RW(va1);sp106_enab1e(0);440,*45464748495051525354555657585960函数名功能描述输入参数输出参数返回值调用函数被调函数修改历史1.日作修改内容sp10601readI2C寄存器读取子函数uint8hwadr硬件地址uint8regadr寄存器地址uint8读出值2023年O1月06日fengeke新生成函数*,u861(626364656667681sp10601_read(unsignedcharregadr)u8reg-data;sp106_enab1e(1);SPI_RW(regadr0x80);reg-data=SPI_RW(Oxff);sp106_enab1e(0);returnreg_data;查看手册发现压力、温度的24位原始值在地址0x00-0x05±oRegisterNameAddEbit7bit6bit5bit4Wt3人叭bnIbitResetStatePSR_B20x00PSR23J6(r)COOhPSR_B10x01

    注意事项

    本文(飞控开发基础教程7开源编队无人机SPI气压计数据获取.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开