java基础06

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
抽取方法的快捷键: ctrl+alt+m
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述## 重载
在这里插入图片描述
方法重载与多个方法的返回值类型,是不是static,是不是public无关。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
相当于自动类型转化,,范围由小到大往上升
强制类型中转化就是,范围由大到小
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
形参:基本类型/ 形参若是基本数据类型,形参改变对实参没有影响
形参:引用数据类型 形参若是引用数据类型,形参数据类型的改变对实参有影响。(=====》》非常重要

在这里插入图片描述
虚拟机负责-====弹栈,释放 压栈,加载

写代码值的时候要注意----关键点比如 方法—返回值+参数列表(懂了关键点,可以快速写出代码)

在这里插入图片描述
形参------变量
不调用-
在这里插入图片描述
main–方法第一行进行添加断点。

在这里插入图片描述
console :若程序有输出语句,则显示输出语句

debug-----在键盘录入的时候,提示录入数据----输入数据之后才能够进行继续debug
在这里插入图片描述
一个数字的正反序列相互读取。
在这里插入图片描述
标记思想:先假设数据有效,如果数据有效,则不修改标记,若是无效,则修改标记的值。
在这里插入图片描述
抽象成方法:ctrl+alt+m
在这里插入图片描述
例题:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

经典题:/*查找元素在数组中索引位置:

请定义方法,可以求出某个整数在某个数组中的出现位置,并返回结果。如果数组中不包含这个数,则返回-1
定义main()方法,定义一个10个长度的数组,并从控制台接收10个整数填充数组,
然后再接收一个整数,调用这个方法,查找这个数在数组中出现的索引位置,接收返回值并打印:*/
1.返回第一次出现的位置
在这里插入图片描述
2.返回所有的位置

在这里插入图片描述
主函数部分:
在这里插入图片描述

数组元素反转

在这里插入图片描述

数组反转

/请定义方法,实现将数组中的所有元素“反转存储”,例如:
原数组:{1,2,3,4,5}
反转后:{5,4,3,2,1}
定义main()方法,定义一个10个长度的数组,
并从控制台接收10个整数填充数组,调用方法,之后再次打印这个数组:
/

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 连接硬件 首先,我们需要将MPU6050与STC32单片机进行连接。MPU6050是一种典型的陀螺仪传感器,它可以测量物体的角度、加速度等。STC32单片机是一种常用的微控制器,具有高性能和强大的处理能力。我们可以通过连接这两个硬件,在STC32单片机上读取并处理MPU6050的初始数据。 连接方法如下: 将MPU6050的VCC连到单片机的3.3V电源,GND连到单片机的GND。 将MPU6050的SCL连到单片机的P2.1引脚,SDA连到单片机的P2.0引脚。 2. 编写代码 接下来,我们需要编写程序来读取并处理MPU6050的初始数据。代码如下: #include <reg52.h> #include <intrins.h> #define MPU6050_ADDR 0xD0 #define MPU6050_SMPLRT_DIV 0x19 #define MPU6050_CONFIG 0x1A #define MPU6050_GYRO_CONFIG 0x1B #define MPU6050_ACCEL_CONFIG 0x1C #define MPU6050_ACCEL_XOUT_H 0x3B #define MPU6050_PWR_MGMT_1 0x6B #define MPU6050_WHO_AM_I 0x75 sbit SDA = P2^0; sbit SCL = P2^1; void delay_ms(unsigned int ms) //延时函数 { unsigned int i, j; for (i = 0; i < ms; i++) for (j = 0; j < 120; j++); } void I2C_Start() //I2C起始信号 { SDA = 1; SCL = 1; _nop_(); _nop_(); _nop_(); SDA = 0; _nop_(); _nop_(); _nop_(); SCL = 0; } void I2C_Stop() //I2C停止信号 { SDA = 0; SCL = 1; _nop_(); _nop_(); _nop_(); SDA = 1; _nop_(); _nop_(); _nop_(); } void I2C_SendByte(unsigned char byte) //I2C发送字节 { unsigned char i; for (i = 0; i < 8; i++) { if (byte & 0x80) SDA = 1; else SDA = 0; byte <<= 1; SCL = 1; _nop_(); _nop_(); _nop_(); SCL = 0; } } unsigned char I2C_ReceiveByte() //I2C接收字节 { unsigned char i, byte = 0; SDA = 1; for (i = 0; i < 8; i++) { byte <<= 1; SCL = 1; _nop_(); _nop_(); _nop_(); if (SDA) byte++; SCL = 0; } return byte; } void I2C_SendACK(bit ack) //I2C发送应答 { SDA = ack; SCL = 1; _nop_(); _nop_(); _nop_(); SCL = 0; } void MPU6050_WriteByte(unsigned char reg, unsigned char byte) //向MPU6050写入一个字节 { I2C_Start(); I2C_SendByte(MPU6050_ADDR); I2C_SendByte(reg); I2C_SendByte(byte); I2C_Stop(); } unsigned char MPU6050_ReadByte(unsigned char reg) //从MPU6050读取一个字节 { unsigned char byte; I2C_Start(); I2C_SendByte(MPU6050_ADDR); I2C_SendByte(reg); I2C_Start(); I2C_SendByte(MPU6050_ADDR | 1); byte = I2C_ReceiveByte(); I2C_SendACK(0); I2C_Stop(); return byte; } void MPU6050_Init() //MPU6050初始化 { MPU6050_WriteByte(MPU6050_PWR_MGMT_1, 0x00); MPU6050_WriteByte(MPU6050_SMPLRT_DIV, 0x07); MPU6050_WriteByte(MPU6050_CONFIG, 0x06); MPU6050_WriteByte(MPU6050_GYRO_CONFIG, 0x18); MPU6050_WriteByte(MPU6050_ACCEL_CONFIG, 0x01); } void main() //主函数 { unsigned char accel_x_h, accel_x_l, accel_y_h, accel_y_l, accel_z_h, accel_z_l; int accel_x, accel_y, accel_z; float accel_x_g, accel_y_g, accel_z_g; MPU6050_Init(); //MPU6050初始化 while (1) { accel_x_h = MPU6050_ReadByte(MPU6050_ACCEL_XOUT_H); accel_x_l = MPU6050_ReadByte(MPU6050_ACCEL_XOUT_H + 1); accel_y_h = MPU6050_ReadByte(MPU6050_ACCEL_XOUT_H + 2); accel_y_l = MPU6050_ReadByte(MPU6050_ACCEL_XOUT_H + 3); accel_z_h = MPU6050_ReadByte(MPU6050_ACCEL_XOUT_H + 4); accel_z_l = MPU6050_ReadByte(MPU6050_ACCEL_XOUT_H + 5); accel_x = (int)(accel_x_h << 8 | accel_x_l); accel_y = (int)(accel_y_h << 8 | accel_y_l); accel_z = (int)(accel_z_h << 8 | accel_z_l); accel_x_g = (float)accel_x / 16384.0; accel_y_g = (float)accel_y / 16384.0; accel_z_g = (float)accel_z / 16384.0; //将数据处理后输出 printf("accel_x: %f g, accel_y: %f g, accel_z: %f g\n", accel_x_g, accel_y_g, accel_z_g); delay_ms(100); } } 3. 程序说明 程序中的MPU6050_Init()函数用于初始化MPU6050,包括设置采样率、配置加速度计和陀螺仪的工作方式等。 程序中的while循环用于循环读取MPU6050的数据。通过调用MPU6050_ReadByte()函数读取加速度计的三个轴的数据,并将其转换成浮点数。然后,将处理后的数据输出到串口上。最后,通过delay_ms()函数延时100毫秒,以便下一次读取数据。 4. 总结 本文介绍了如何利用STC32单片机读取并处理MPU6050的初始数据。通过连接硬件、编写程序,我们可以轻松地获取MPU6050的数据,并进行处理。这为我们后续的项目开发提供了重要的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值