v115488

    1. 看了看商家提供的程序. 基本上都看的明白,就是整数转字符串这里. //**************************************** //整数转字符串 //**************************************** void lcd_printf(uchar *s,int temp_data) {         if(temp_data
    2. 曹伟1993 发表于 2018-7-6 09:08 你用IIC去读取数据,首先你应该找到这个设备的地址吧?只有找到了这个设备,你才能对这个设备进行操作,都 ...
      师傅,读写的MPU地址都写在IIC里了,你帮忙看下有没有问题.辛苦你了 /******************************************************************************* * 函数名         : I2C_mpu6050Write(unsigned char addr,unsigned char dat) * 函数功能                   : 往mpu6050的一个地址写入一个数据 * 输入           : 无 * 输出                  : 无 *******************************************************************************/ void I2C_mpu6050Write(u8 addr,u8 dat) {         I2C_start();         I2C_sendbyte(0xd0);         I2C_sendbyte(addr);         I2C_sendbyte(dat);         I2C_stop(); } /******************************************************************************* * 函数名         : I2C_mpu6050Read(unsigned char addr) * 函数功能                   : 读取mpu6050的一个地址的一个数据 * 输入           : 无 * 输出                  : 无 *******************************************************************************/ u8 I2C_mpu6050Read(u8 addr) {         u8 num;         I2C_start();         I2C_sendbyte(0xd0);         I2C_sendbyte(addr);         I2C_start();         I2C_sendbyte(0xd1);         num=I2C_readbyat();         I2C_stop();         return num; }
    3. 曹伟1993 发表于 2018-7-4 16:48 你确定你的对了?你程序上写的串口的波特率是9600,但是你的串口助手上的波特率显示的是4800,不知道你的 ...
      谢谢您的回复,我的片机是12M的晶振,我算了一下,使用9600的波特率,误差有点高,4800倍频一下,误差0点几.所以就改为4800倍频了.经测试OK
    4. 搞定,是频率没计算好; 欢迎和我一样的小白,来交流各种问题{:1_102:}
    5. v115488 发表于 2018-6-28 17:55 把51单片机的教程又撸了一遍,今天撸完最后一课EEPROM(IIC). 下午就按自己的理解开撸MPU6050, 硬件连接如 ...
      这一步的目标是能读取到MPU6050的数据,然后经过串口在上位机PC上显示
    6. 把51单片机的教程又撸了一遍,今天撸完最后一课EEPROM(IIC). 下午就按自己的理解开撸MPU6050, 硬件连接如图 结果失败,读取不到数据 程序共分3个文件,分别是< I2C.h >,< I2C.c >和< MPU6050 >,代码如下: I2C.h代码 #ifndef __I2C_H_ #define __I2C_H_ #include sbit SCL=P2^1;   //作为从机时IIC时钟线 sbit SDA=P2^0;   //作为从机时IIC数据线 void  signal_start(); void  signal_stop(); unsigned char data_output(unsigned char dat); unsigned char data_input(); unsigned char I2CRead(unsigned char addr); #endif I2C.c 代码 #include #include //延时函数 void delay5us(void)   //误差 0us {     unsigned char a;     for(a=1;a>0;a--); } //起始信号 void  signal_start() { SDL=1; delay5us(2); SCL=1; delay5us(2); SDL=0; delay5us(2); SCL=0; delay5us(2); } //终止信号 void  signal_stop() { SDL=1; delay5us(2); SCL=1; delay5us(2); SDL=0; delay5us(2); } /******************************************************************************* * 函数名         : data_output(unsigned char dat) * 函数功能                 : 通过I2C发送一个字节。在SCL时钟信号高电平期间,保持发送信号SDA保持稳定 * 输入           : num * 输出                  : 0或1。发送成功返回1,发送失败返回0 * 备注           : 发送完一个字节SCL=0,SDA=1 *******************************************************************************/ unsigned char data_output(unsigned char dat) {         unsigned char a=0,b=0;//最大255,一个机器周期为1us,最大延时255us。                        for(a=0;a>7;         //起始信号之后SCL=0,所以可以直接改变SDA信号                 dat=dat200)         //如果超过2000us没有应答发送失败,或者为非应答,表示接收结束                 {                         SCL=0;                         delay5us(2);                         return 0;                 }         }         SCL=0;         delay5us(2);         return 1;                } /******************************************************************************* * 函数名         : data_input() * 函数功能                   : 使用I2c读取一个字节 * 输入           : 无 * 输出                  : dat * 备注           : 接收完一个字节SCL=0,SDA=1. *******************************************************************************/ unsigned char data_input() {         unsigned char a=0,dat=0;         SDA=1;                        //起始和发送一个字节之后SCL都是0         delay5us(2);         for(a=0;a
    7. 谢谢各位
    8. gxg1122 发表于 2018-6-5 13:06 你想怎么精简了?
      功能不变,代码不越短越好吗?
    9. 问题已解决:是LED点阵导致的显示错误,把74H595的OE端跳冒拔掉就OK了
    10. 矩阵键盘,编码报错,请各位指点.... 3/2891 51单片机 2018-05-27
      huo_hu 发表于 2018-5-27 17:56 提示你112行的错误了,你anjian_biao(cod);函数里没有返回值
      谢谢回复,我想这个可能是,按键码表数据(void型)定义错误,如果在注释返回哪里加上return  num;就会提示数据转换错误.我把void改成u8 就OK了
    11. 顶一顶,
    12. ljj3166 发表于 2018-5-20 13:37 楼主要不先试一下,自己撸码把开发板上的外设跑一遍?
      自己撸的: 查了一些资料,说MPU6050只接4根线就可以,VDD,GND,SCL,SDA 我把4条线直接用杜邦线接在开发板的4个键位了.如图 开发板原图 也就是红线圈的4个管脚. 刚接触MPU6050芯片,不明白他是什么原理.一直没敢上电,怕烧板子 主要是不确定链接对不对!!!!!:time:
    13. 第一个目标:小车能直立不到 问题1:MPU6050模块与单片机怎么链接{:1_96:}{:1_96:}{:1_96:} :time:
    14. PowerAnts 发表于 2018-5-20 12:22 还真不能用适配器,只能用电池。实测过三节锂电池的小手钻,空载电流1A多,打螺丝批力调最大达20A
      谢谢回复,学习了{:1_103:}{:1_103:}{:1_103:}
    15. 谢谢两位的解答,{:1_103:}{:1_103:}{:1_103:}
    16. maychang 发表于 2018-5-18 18:51 我曾把充电器直接到手钻上,但是手钻不转. 那是因为你的充电器功率不够大(手电钻工作时电流大于400mA)。 ...
      谢谢, 根据P=UI U是满足的 这里的功率不足,我可以理解为是电流太小吗?也就是电流不足?对吗?
    17. v115488 发表于 2018-5-18 18:50 先谢谢您的回复. 我有个不用电脑的电脑电源,能改造一个吗?
      根据P=UI U是满足的 这里的功率不足,我可以理解为是电流太小吗?也就是电流不足?对吗?
    18. 本帖最后由 v115488 于 2018-5-18 18:56 编辑
      先谢谢您的回复.
      我有个不用电脑的电脑电源,能改造一个吗?
    19. 从新模块的查询了一遍,终于找到问题了,    if(store=0)                 //判断储存按键是否被按下 这一句判断的时候,括号内少打了一个=号, 希望不要有朋友犯一样的错误:Sad::Sad::Sad:
    20. EEWorld 社区威望积分规则 3034/1610360 为我们提建议&公告 2014-05-05
      学习了,学习了,好论坛,新手好好学习,天天向上

最近访客

< 1/1 >

统计信息

已有3人来访过

  • 芯积分:--
  • 好友:--
  • 主题:8
  • 回复:20

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言