当前位置: 首页 > news >正文

科技 网站 推荐网站建设的盈利性和非盈利性

科技 网站 推荐,网站建设的盈利性和非盈利性,去招聘网站做顾问,什么公司需要建立网站目录 主控和外设之间的联系关键示例可能的bug 主控和外设之间的联系 在完成代码之前#xff0c;我们手里会有两份代码#xff0c;一份是nrf528xx的SDK#xff0c;一份是BMI160传感器的SDK#xff0c;怎么利用SDK完成我们的需求呢#xff1f;首先我们要搞明白#xff0c;… 目录 主控和外设之间的联系关键示例可能的bug 主控和外设之间的联系 在完成代码之前我们手里会有两份代码一份是nrf528xx的SDK一份是BMI160传感器的SDK怎么利用SDK完成我们的需求呢首先我们要搞明白主控和外设之间的联系是什么传感器给的SDK具体是什么内容。 我们这次的需求是通过SPI进行传输SPI通过6条线将传感器和主控芯片联系在一起如图 传感器是一个商用的物品已经没有第二次烧录的可能性他里面已经烧录了代码只要连接引脚通过引脚给他指令就可以工作可以理解成一个蓄势待发的玩具青蛙等待一个指令就可以不停的跳工作。引脚也可以理解成一个硬件级别的API接口哈哈 而传感器的SDK就相当于一个指令集比如一个蓝牙耳机你看说明书他会告诉你怎么按API接口可以播放音乐、暂停音乐。类似的一般的传感器会提供SPI或者是I2C的通信SDK会告诉你怎么通过函数API让他开始传输数据哈哈这里就比较复杂一点没法对6条线实物操作好像你只能把他掐断了但他也工作不了需要自己写代码去驱动。什么是驱动就是拿着他的SDK放在自己代码中。 那有人问了函数API怎么就能通过六条线进行指令啦这涉及到通信啦大家感兴趣的话可以了解一下SPI 通信、计算机网络但是对于我们代码来说其实属于最高级别的应用层直接黑盒子拿API来使用。如果问代码为啥可以变成 0/1进行通信那就得去学学计科计组和编译啦。 在与BMI160进行交互时通常我们会通过其寄存器来配置设备、读取数据以及执行其他操作。这些寄存器包括配置寄存器、数据寄存器、状态寄存器等。大家看到SDK里面有很多宏定义大部分都是寄存器的一些地址这也是需要硬件商家提供的让API的每一个对应函数功能都去找对应的寄存器存或者取数据。不用理会其中的为啥这个宏定义就i是1或者2这就是硬件商家规定好的就像你给一个物体打个标签区分他们一样你只要看他的变量名字就好了。 好我们了解了传感器SDK一般会给我们的东西仔细琢磨可以知道他是怎么运作想直接用的话你可以直接把他当成黑盒子直接调用他给出的API就好涉及的库直接记得依赖进来就好。 关键 我们刚才说通过SPI线进行驱动传感器才会工作那SPI的传输数据代码到底是属于谁的呢是主控的因为我们烧写的代码是在主控上进行的写的代码就要调用主控上的SPI端口。 好像传感器的SDK也有写到SPI但他实际上只是变量写了SPI相关字眼实际上函数参数导入主控上SPI对象告诉你应该从哪个寄存器存或者取然后根本还是要用主控上SPI去读取。 主控上一般都会给出I2C和SPI的示例代码只要进行调用对应的函数就好了。 // nrf_drv_spi_transfer 是nrf528xx的API, spi_read_transfer是自己命名的函数 int8_t spi_read_transfer(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t length) {ret_code_t ret ;uint8_t read_temp[ length 1 ] ;reg_addr reg_addr | 0x80; ret nrf_drv_spi_transfer(spi, reg_addr, 1, read_temp, length 1 ) ; nrf_delay_ms(5); for( int i 1 ; i length 1 ; i )reg_data[i-1] read_temp[i] ;return (int8_t)ret; }int8_t spi_write_transfer(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t length) {ret_code_t ret;uint8_t write_temp[ length 1 ] ;reg_addr reg_addr 0x7F;write_temp[0] reg_addr ;for( int i 1 ; i length 1 ; i )write_temp[i] reg_data[i-1] ;ret nrf_drv_spi_transfer(spi, write_temp, length 1, no_use, 1 ) ;nrf_delay_ms(5) ;return (int8_t)ret; }我们来看看bmi160的SDK dev-read底层用的是nrf52的SPI接口具体代码在bmi160的示例中 sensor.read spi_read_transfer; sensor.write spi_write_transfer;他将sensor这个类的read句柄接入了spi_read_transfer而这个函数本质是nrf_drv_spi_transfer() 示例 整体流程是 1、实例化bmi160BMI160 SDK) 2、实例化SPInrf52 SDK) 3、将bmi160 设置的SPI句柄实例化 3、读取传感器数据BMI160 SDK) github 示例 可能的bug 如果数据一直是0的话看是否激活sensor进行工作比如bmi160就需要以下这句代码让他不断读取数据 // set configurationsensor_calibration.acc_cg.power BMI160_ACC_NORMAL_MODE; // power modesensor_calibration.gyro_cfg.power BMI160_GYRO_NORMAL_MODE; // power mode如果和蓝牙一起使用注意 spi和蓝牙的优先级 spi_config0.irq_priority 2;
http://www.hkea.cn/news/14393271/

相关文章:

  • 麻阳住房和城乡建设局网站四川二滩建设咨询有限公司网站
  • 云计算存储网站建设安全中国开头的网站怎么做
  • 做菠菜网站多少钱wordpress根目录403
  • 做网站维护做邀请函用哪个网站好呢
  • 惠州建设工程交易网站sem优化师是做什么的
  • 国内手机网站建设门店销售管理系统
  • 网站建设网络推广柯wordpress自定义右键
  • 服饰网站建设怎么在百度建设一个网站
  • 国内常见响应式网站wordpress点击插件
  • 德州做名片的网站机械产品网络推广怎么做
  • 公司外文网站制作广广东网站建设
  • 南京我爱我家网站建设新村二手房建设工程教育网app
  • 中国移动网站备案管理系统不能用中国软件公司
  • 做网站 就上微赞网浙江省长兴县建设局网站
  • 建网站平台要多少钱潍坊做网站的企业
  • 网站建设项目投资测算桥下网站制作哪家好
  • 建网站软件 优帮云苏州有做网站的公司吗
  • 网站建设 沈阳一些网站是用什么颜色做的
  • 松原公司做网站的流程站长工具seo综合查询降级
  • 在本地做的网站怎么修改域名信息网站方案
  • php做购物网站详情页的代码做h5网站的公司
  • 密云做网站的文件外链
  • 社区网站 租用服务器还是只需要购买空间长沙网络开发公司
  • 做网站后有人抢注关键词网站开发流程视频
  • 一个网站的上线流程哪个网站做轴承外贸的人比较多
  • 官网设计报价鹤壁网站优化
  • html网站开发实战教程曰本免费一级a做爰视频网站
  • 网站建设费用都选网络营销型网站建设比较好
  • 免费黄页网站做物品租赁网站
  • 威海教育行业网站建设灯光设计师培训