工程文件参考——CubeMX+STM32F4+FreeRTOS+IIC实现JY901通讯
文章目录
- 代码实现
- JY901.h
- JY901.c
# 前言
本文主要提供F4系列芯片针对JY901芯片的通讯库,供各位参考
JY901芯片提供的库函数是没有F4芯片的资料的,我对着提供的F1芯片模拟IIC通讯改了一些,使用F4硬件IIC系统实现通讯效果
开发者留意下使用iic的地址,0x50要左移一位
(作者泪奔,调试一下午没出结果就因为这个)
文件LobotServoController.h、bool.h请保存到include文件夹中
文件LobotServoController.c请保存到source文件夹中
代码实现
JY901.h
#ifndef JY901_H
#define JY901_H#define SAVE 0x00
#define CALSW 0x01
#define RSW 0x02
#define RRATE 0x03
#define BAUD 0x04
#define AXOFFSET 0x05
#define AYOFFSET 0x06
#define AZOFFSET 0x07
#define GXOFFSET 0x08
#define GYOFFSET 0x09
#define GZOFFSET 0x0a
#define HXOFFSET 0x0b
#define HYOFFSET 0x0c
#define HZOFFSET 0x0d
#define D0MODE 0x0e
#define D1MODE 0x0f
#define D2MODE 0x10
#define D3MODE 0x11
#define D0PWMH 0x12
#define D1PWMH 0x13
#define D2PWMH 0x14
#define D3PWMH 0x15
#define D0PWMT 0x16
#define D1PWMT 0x17
#define D2PWMT 0x18
#define D3PWMT 0x19
#define IICADDR 0x1a
#define LEDOFF 0x1b
#define GPSBAUD 0x1c#define YYMM 0x30
#define DDHH 0x31
#define MMSS 0x32
#define MS 0x33
#define AX 0x34
#define AY 0x35
#define AZ 0x36
#define GX 0x37
#define GY 0x38
#define GZ 0x39
#define HX 0x3a
#define HY 0x3b
#define HZ 0x3c
#define Roll 0x3d
#define Pitch 0x3e
#define Yaw 0x3f
#define TEMP 0x40
#define D0Status 0x41
#define D1Status 0x42
#define D2Status 0x43
#define D3Status 0x44
#define PressureL 0x45
#define PressureH 0x46
#define HeightL 0x47
#define HeightH 0x48
#define LonL 0x49
#define LonH 0x4a
#define LatL 0x4b
#define LatH 0x4c
#define GPSHeight 0x4d
#define GPSYAW 0x4e
#define GPSVL 0x4f
#define GPSVH 0x50#define DIO_MODE_AIN 0
#define DIO_MODE_DIN 1
#define DIO_MODE_DOH 2
#define DIO_MODE_DOL 3
#define DIO_MODE_DOPWM 4
#define DIO_MODE_GPS 5 typedef struct
{float a[3],w[3],h[3],Angle[3];
}JY901_Angle;void JY901_RDDat(JY901_Angle *IMUx);#endif
JY901.c
#include "JY901.h"
#include "stm32f401xc.h"
#include "i2c.h"
#include "usbd_cdc_if.h"unsigned char chrTemp[30];JY901_Angle IMU;void ShortToChar(short sData,unsigned char cData[])
{cData[0]=sData&0xff;cData[1]=sData>>8;
}
short CharToShort(unsigned char cData[])
{return ((short)cData[1]<<8)|cData[0];
}void JY901_RDDat(JY901_Angle *IMUx)
{//HAL_I2C_Mem_Read(&hi2c1, 0x50, AX, I2C_MEMADD_SIZE_8BIT, &chrTemp[0] , 24, 10);//HAL_I2C_Mem_Read(&hi2c1, 0x78, AX, I2C_MEMADD_SIZE_8BIT, &chrTemp[0] , 24, 10);HAL_I2C_Mem_Read(&hi2c1, 0x50<<1, AX, I2C_MEMADD_SIZE_8BIT, &chrTemp[0] , 24, 0xff);(*IMUx).a[0] = (float)CharToShort(&chrTemp[0])/32768*16;(*IMUx).a[1] = (float)CharToShort(&chrTemp[2])/32768*16;(*IMUx).a[2] = (float)CharToShort(&chrTemp[4])/32768*16;(*IMUx).w[0] = (float)CharToShort(&chrTemp[6])/32768*2000;(*IMUx).w[1] = (float)CharToShort(&chrTemp[8])/32768*2000;(*IMUx).w[2] = (float)CharToShort(&chrTemp[10])/32768*2000;(*IMUx).h[0] = CharToShort(&chrTemp[12]);(*IMUx).h[1] = CharToShort(&chrTemp[14]);(*IMUx).h[2] = CharToShort(&chrTemp[16]);(*IMUx).Angle[0] = (float)CharToShort(&chrTemp[18])/32768*180;(*IMUx).Angle[1] = (float)CharToShort(&chrTemp[20])/32768*180;(*IMUx).Angle[2] = (float)CharToShort(&chrTemp[22])/32768*180;
}
工程文件参考——CubeMX+STM32F4+FreeRTOS+IIC实现JY901通讯相关推荐
- 工程文件参考——STM32F4+幻尔LSC舵机控制板 四足机器人足端逆解控制器
文章目录 代码实现 Quadruped_huaner.h Quadruped_huaner.c # 前言 本文主要提供使用F4系列芯片针对幻尔LSC舵机控制板的四足机器人足端坐标逆解库,供各位参考 请 ...
- 课设舵机狗总结文——CubeMX+STM32F4+FreeRTOS+USART2+幻尔舵机控制板 实现动作组稳定运动
课设舵机狗总结文系列文章目录 这里罗列了系列文章链接 总述 课设舵机狗总结文--总集篇 机械部分 课设舵机狗总结文--Solidworks舵机狗机械结构设计方案 F4控制部分 课设舵机狗总结文--Cu ...
- STM32L051测试 (一、使用CubeMX生成工程文件 — ST系列芯片通用)
本文也适合STM32CubeMX 支持的所有芯片的设置 ..调整文章结构,添加图文说明 2022.2 ..增加其他应用章节,增加 ADC 设置说明 2023.3 CubeMX生成工程步骤 前言 一.时 ...
- fifo介绍及fifo IP核使用(工程文件获取请参考文末)
一.fifo简介 1.fifo first in first out的缩写,先进先出数据缓存器. 与普通存储器的区别:对外接口没有地址线. 由此所带来的优点是:不用处理地址信号,时序较简单. 缺点是: ...
- STM32之添加工程文件(参考洋桃电子视频)
添加工程文件步骤 与添加固件库相似. 1.点击右键,新建文件夹并取名字 2.在文件夹中新建子文件夹并命名 3.在子文件夹里建立文本文档,把名字改为xxx.c和xxx.h 4.在keil软件中添加驱动程 ...
- 这些优质级C4D工程文件,免费分享,值得参考
工欲善其事必先利其器!! 今天我们为你精选了精选12套C4D工程文件 下面是图片预览,详情可在某宝搜索得知 C4D Redshift半透明橙色塑料科幻造型创意工程场景3D模型 C4D Redshift ...
- STM32移植LVGL8.0.2超详细的保姆级教程附移植好的工程文件
文章目录 前言 一.什么是LVGL? 二.先看效果 三.移植前准备工作 1.准备原有工程 2.下载LVGL源码 四.开始移植 1.把源码搬运到工程文件夹里 2.把搬运好的代码添加到keil工程 3.动 ...
- CubeMX+STM32F4+DHT11模块
文章目录 前言 一.CubeMX配置 二.代码 总结 前言 本文主要介绍利用CubeMX配置STM32F4系列芯片读取DHT11温湿度采集模块,仅作于学习 一.CubeMX配置 1.新建工程,配置相关 ...
- VS2010 ,工程文件减肥
写一个bat文件来清理VS2010工程文件. 将其放入到工程文件夹下,双击即可自动将sdf,ipch等占用空间很大的文件删除. 这样的方式较之于转移浏览数据库文件的位置而言更为灵活一些,不用特别的设置 ...
最新文章
- python代码根据时间获取周数(week of the year)
- [Google Guava] 12-数学运算
- Linux 进程管理命令
- 利用Flask来构建项目的大概步骤
- 9_InfluxDB常用函数(二)选择类函数(TOP() BOTTOM() FIRST() LAST() MAX() MIN() PERCENTILE())
- B. Complete the Word (尺取法)
- java面试题24 关于Java中的数组,
- Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
- 存储器是计算机的记忆装置,存储器(Memory)
- Magento教程 24:如何发送电子报! (Newsletter)
- 外部接口需求怎么写_怎么写财务工作报告?送你16套高逼格财务工作报告范文PPT模板,满足不同行业会计需求!...
- tf2多种方式对图像数据集进行预处理
- 动态卷积:自适应调整卷积参数,显著提升模型表达能力
- 快门速度,光圈,感光度
- [leetcode]初级算法——动态规划
- 【Photoshop实用教程】如何用魔术棒工具替换背景?
- Matplotlib画折线图
- 包子笔记 - 三知道原则
- qemu stm32环境搭建教程
- Qt之QSqlDatabase 添加自定义物理键盘输入法