资源简介
STM32单片机通过IIC通信方式读取两个JY-901模块的数据,代码可用,注释清晰方便学习
代码片段和文件信息
/*
编写者:Kevin
网址:http://RobotControl.taobao.com
作者E-mail:1609370741@qq.com
编译环境:MDK-Lite Version: 5.17
初版时间: 2016-1-31
测试: 本程序已在【君悦智控】的STM32Core平台上完成测试
功能:
用STM32Core平台IIC接口读取JY901的数据,然后通过串口1打印到串口助手。
接线
USB-TTL工具 STM32Core JY901
VCC ----- VCC ---- VCC
TX ----- RX1
RX ----- TX1
GND ----- GND ---- GND
SDA2 ---- SDA
SCL2 ---- SCL
------------------------------------
*/
#include
#include
#include “Main.h“
#include “REG.h“
#include “stm32f10x_rcc.h“
#include “stm32f10x_gpio.h“
#include “UART1.h“
#include “delay.h“
#include “IOI2C.h“
#include “hw_config.h“
void ShortToChar(short sDataunsigned char cData[])
{
cData[0]=sData&0xff;
cData[1]=sData>>8;
}
short CharToShort(unsigned char cData[])
{
return ((short)cData[1]<<8)|cData[0];
}
int main(void)
{
unsigned char chrTemp[30];
unsigned char str[100];
float a[3]w[3]h[3]Angle[3];
USB_Config();
SysTick_init(7210);
Initial_UART1(115200);
IIC_Init();
while (1)
{
delay_ms(100);
IICreadBytes(0x50 AX 24&chrTemp[0]);
a[0] = (float)CharToShort(&chrTemp[0])/32768*16;
a[1] = (float)CharToShort(&chrTemp[2])/32768*16;
a[2] = (float)CharToShort(&chrTemp[4])/32768*16;
w[0] = (float)CharToShort(&chrTemp[6])/32768*2000;
w[1] = (float)CharToShort(&chrTemp[8])/32768*2000;
w[2] = (float)CharToShort(&chrTemp[10])/32768*2000;
h[0] = CharToShort(&chrTemp[12]);
h[1] = CharToShort(&chrTemp[14]);
h[2] = CharToShort(&chrTemp[16]);
Angle[0] = (float)CharToShort(&chrTemp[18])/32768*180;
Angle[1] = (float)CharToShort(&chrTemp[20])/32768*180;
Angle[2] = (float)CharToShort(&chrTemp[22])/32768*180;
sprintf((char*)str“0x50: a:%.3f %.3f %.3f w:%.3f %.3f %.3f h:%.0f %.0f %.0f Angle:%.3f %.3f %.3f \r\n“a[0]a[1]a[2]w[0]w[1]w[2]h[0]h[1]h[2]Angle[0]Angle[1]Angle[2]);
UART1_Put_String(str);
USB_TxWrite(str strlen((char*)str));
IICreadBytes(0x51 AX 24&chrTemp[0]);
a[0] = (float)CharToShort(&chrTemp[0])/32768*16;
a[1] = (float)CharToShort(&chrTemp[2])/32768*16;
a[2] = (float)CharToShort(&chrTemp[4])/32768*16;
w[0] = (float)CharToShort(&chrTemp[6])/32768*2000;
w[1] = (float)CharToShort(&chrTemp[8])/32768*2000;
w[2] = (float)CharToShort(&chrTemp[10])/32768*2000;
h[0] = CharToShort(&chrTemp[12]);
h[1] = CharToShort(&chrTemp[14]);
h[2] = CharToShort(&chrTemp[16]);
Angle[0] = (float)CharToShort(&chrTemp[18])/32768*180;
Angle[1] = (float)CharToShort(&chrTemp[20])/32768*180;
Angle[2] = (float)CharToShort(&chrTemp[22])/32768*180;
sprintf((char*)str“0x51: a:%.3f %.3f %.3f w:%.3f %.3f %.3f h:%.0f %.0f %.0f Angle:%.3f %.3f %.3f \r\n“a[0]a[1]a[2]w[0]w[1]w[2]h[0]h[1]h[2]Angle[0]Angle[1]Angle[2]);
UART1_Put_String
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 836 2014-11-26 23:17 STM32Core IIC读取两个模块\DOC\Note.h
文件 181137 2016-08-13 11:46 STM32Core IIC读取两个模块\MDK\Jli
文件 671 2015-12-22 12:51 STM32Core IIC读取两个模块\MDK\Jli
文件 185336 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\List\Project.map
文件 55946 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\List\startup_stm32f10x_hd.lst
文件 236329 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\delay.crf
文件 659 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\delay.d
文件 261896 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\delay.o
文件 286980 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\hw_config.crf
文件 1812 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\hw_config.d
文件 335876 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\hw_config.o
文件 254088 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\ioi2c.crf
文件 768 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\ioi2c.d
文件 288348 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\ioi2c.o
文件 274770 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\main.crf
文件 1393 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\main.d
文件 304460 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\main.o
文件 235781 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\misc.crf
文件 619 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\misc.d
文件 259456 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\misc.o
文件 443084 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\Project.axf
文件 1961 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\Project.build_log.htm
文件 47563 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\Project.hex
文件 87294 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\Project.htm
文件 1148 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\Project.lnp
文件 479 2016-01-31 14:25 STM32Core IIC读取两个模块\MDK\Obj\Project.sct
文件 64258 2016-08-13 11:45 STM32Core IIC读取两个模块\MDK\Obj\Project_Project.dep
文件 16102 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\queue.crf
文件 245 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\queue.d
文件 35364 2016-08-13 11:35 STM32Core IIC读取两个模块\MDK\Obj\queue.o
............此处省略234个文件信息
- 上一篇:GY-302 BH1750光照强度模块资料与代码
- 下一篇:清晖PMP课堂模拟二
相关资源
- 基于stm32的几种频率计的实现方法
- Stm32_PWM控制LED由暗变亮占空比可调
- 基于stm32与esp8266智能家居应用
- STM32F103内部温度传感器源码
- 板球系统2017电赛B题
- stm32f103-VK3224
- STM32F103C8T6的双路ADC采样
- 基于STM32F103C8T6的迷宫小车
- STM32f103电压采样并用LCD1602显示
- STM32F407ZET/ZGT STEMWIN ILI9341 SPI LCD液晶屏
- stm32F103与PCM5102A与Helix软解播放MP3
- 用KEIL编写的MODBUS_RTU从站程序STM32
- STM32连接CC1101模块的发射程序!
- STM32F030C8T6库函数模版
- STM32函数库使用手册
- 基于stm32f103C8-ADC带ucos操作系统
- STM32F103C8T6核心板使用说明,原理图,
- MLX90614非接触式红外测温测试代码
- 中景园电子0.96OLED显示屏_STM32_F103C8系
- 基于stm32搬运物块小车
- 基于stm32和FPGA测频测相程序
- PCB练习 STM32最小系统模块制作 适合新
- stm32f407对ds18b20温度传感器数据的采集
- VL53L1X驱动例程
- stm3213年电赛旋转倒立摆
- STM32官方最全的定时器培训资料
- STM32F407_OLED显示
- STM32输出12路pwm程序
- STM32F103+SIM900A的短信电话/向服务器发
- onenet_http_上传温湿度
评论
共有 条评论