久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2339|回復: 4
打印 上一主題 下一主題
收起左側

求助:stc單片機程序改arduino時,iic通訊調試不通?

[復制鏈接]
跳轉到指定樓層
樓主
ID:82043 發表于 2020-6-22 21:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學習arduino,需要從rx8025中讀取時間,但是讀出來的時間都是0;

被注釋的程序是stc的程序,能正常使用,嘗試改成arduino的iic通訊,一直調試不通。

麻煩幫我看看》》

//還有部分其他程序,但到時調用這兩個函數,應該無關吧!!!!




/**************************************
寫一個字節數據到指定地址
**************************************/
void R8025T_WriteOneByte(unsigned char  Addr,unsigned char  Data)
{
            /*以下是stc單片機程序
               IIC_Start();
               IIC_SendByte(R8025T_Address);
               IIC_SendByte(Addr);
               IIC_SendByte(Data);
               IIC_Stop();
               */

    //以下是自己寫的arduino程序
    Wire.beginTransmission(R8025T_Address);
    Wire.write(Addr);
    Wire.write(Data);
    Wire.endTransmission();
}
/**************************************
在指定地址讀一個字節數據
**************************************/
unsigned char  R8025T_ReadOneByte(unsigned char  Addr)
{
    unsigned char  Data;

                  /*以下是stc單片機程序
                  IIC_Start();                    //起始信號
                  IIC_SendByte(R8025T_Address);     //發送設備地址+寫信號
                  IIC_SendByte(Addr);               //發送存儲單元地址
                  IIC_Start();                      //起始信號
                  IIC_SendByte(R8025T_Address+1);   //發送設備地址+讀信號
                  Data = IIC_RecvByte();
                  IIC_SendACK(1);
                  IIC_Stop();                       //停止信號
                  return(Data);
                 */


    Wire.beginTransmission(R8025T_Address);
    Wire.write(Addr);   
    Wire.beginTransmission(R8025T_Address+1);
    Wire.requestFrom(R8025T_Address+1,1);
    Data=Wire.available();
    Wire.endTransmission();
    return (Data);  
}





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:82043 發表于 2020-6-22 21:03 | 只看該作者
現附上調用的程序
回復

使用道具 舉報

板凳
ID:82043 發表于 2020-6-22 21:04 | 只看該作者
/******************************************************************************* * 函數名 : BCD2HEX * 描述    : BCD轉為HEX * 參數    : -bcd_data:傳入BCD格式的數據 * 返回值 : 十六進制數 *******************************************************************************/ unsigned char  BCD2HEX(unsigned char  bcd_data)   {          unsigned char temp;   temp=(bcd_data>>4)*10+bcd_data&0x0f;     return temp; }  /******************************************************************************* * 函數名 : HEX2BCD * 描述    : HEX轉為BCD   * 參數    : -hex_data:傳入十六進制格式的數據 * 返回值 : BCD碼 *******************************************************************************/ unsigned char  HEX2BCD(unsigned char  hex_data)   {        unsigned char  temp;      temp=((hex_data/10)<<4) + (hex_data%10);        return temp;   } /******************************************************************************* * 函數名 : Reset_Time * 描述    : 設置出廠時間 * 參數    : 無 * 返回值 : 無 *******************************************************************************/ void Reset_Time(void) {   //R8025T_WriteOneByte(0x07, 0x00);//不使用   //R8025T_WriteOneByte(0x0E, 0x20);//設置24小時制,可能只有R8025SA才行。    //寫入出廠時間 00:00:00    R8025T_WriteOneByte(0, HEX2BCD(33) ); //寫入R8025T 秒   R8025T_WriteOneByte(1, HEX2BCD(35) ); //寫入R8025T 分   R8025T_WriteOneByte(2, HEX2BCD(20) ); //寫入R8025T 時  }  void Get_Time(void) {   BUF[0] = R8025T_ReadOneByte(0);   BUF[1] = R8025T_ReadOneByte(1);   BUF[2] = R8025T_ReadOneByte(2); //  DateTime[0] = BCD2HEX(BUF[0]);//讀分   DateTime[1] = BCD2HEX(BUF[1]);//讀秒   DateTime[2] = BCD2HEX(BUF[2]);//讀時    //說明:DateTime[2],BUF[0],DateTime[1]分別存放十六進制的時、分、秒   // 為什么BUF[0]存放分的值,而不是DateTime[0],原因不明。 }
回復

使用道具 舉報

地板
ID:82043 發表于 2020-6-23 07:52 | 只看該作者
3205440665 發表于 2020-6-22 21:04
/******************************************************************************* * 函數名 : BCD2HEX ...

另外一部分程序


/*******************************************************************************
* 函數名 : BCD2HEX
* 描述    : BCD轉為HEX
* 參數    : -bcd_data:傳入BCD格式的數據
* 返回值 : 十六進制數
*******************************************************************************/
unsigned char  BCD2HEX(unsigned char  bcd_data)  
{   
   
  unsigned char temp;
  temp=(bcd_data>>4)*10+bcd_data&0x0f;
    return temp;
}

/*******************************************************************************
* 函數名 : HEX2BCD
* 描述    : HEX轉為BCD  
* 參數    : -hex_data:傳入十六進制格式的數據
* 返回值 : BCD碼
*******************************************************************************/
unsigned char  HEX2BCD(unsigned char  hex_data)  
{   
    unsigned char  temp;
    temp=((hex_data/10)<<4) + (hex_data%10);
  
    return temp;  
}
/*******************************************************************************
* 函數名 : Reset_Time
* 描述    : 設置出廠時間
* 參數    : 無
* 返回值 : 無
*******************************************************************************/
void Reset_Time(void)
{
  //R8025T_WriteOneByte(0x07, 0x00);//不使用
  //R8025T_WriteOneByte(0x0E, 0x20);//設置24小時制,可能只有R8025SA才行。

  //寫入出廠時間 00:00:00
  R8025T_WriteOneByte(0, HEX2BCD(33) ); //寫入R8025T 秒
  R8025T_WriteOneByte(1, HEX2BCD(35) ); //寫入R8025T 分
  R8025T_WriteOneByte(2, HEX2BCD(20) ); //寫入R8025T 時
}

void Get_Time(void)
{
  BUF[0] = R8025T_ReadOneByte(0);
  BUF[1] = R8025T_ReadOneByte(1);
  BUF[2] = R8025T_ReadOneByte(2);
//  DateTime[0] = BCD2HEX(BUF[0]);//讀分
  DateTime[1] = BCD2HEX(BUF[1]);//讀秒
  DateTime[2] = BCD2HEX(BUF[2]);//讀時
  //說明:DateTime[2],BUF[0],DateTime[1]分別存放十六進制的時、分、秒
  // 為什么BUF[0]存放分的值,而不是DateTime[0],原因不明。
}
回復

使用道具 舉報

5#
ID:65956 發表于 2020-6-23 08:32 | 只看該作者
IIC通訊能不能成功最關鍵就是時序,時序搞對了就沒有問題,查查自子函數的IIC延時時間對應和晶振對應關系,這樣就應沒問題
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品区一区二区三区 | 亚洲精品女优 | 欧美黄色小视频 | 天天干.com| 国产99视频精品免费播放照片 | 欧美黑人激情 | 香蕉大人久久国产成人av | 国产精品日韩欧美一区二区三区 | 七七婷婷婷婷精品国产 | 国产午夜精品一区二区三区四区 | 免费精品久久久久久中文字幕 | 北条麻妃一区二区三区在线视频 | 午夜久久久久 | 日韩成人在线视频 | 一区二区在线不卡 | 亚洲国产成人精品女人久久久 | 91福利影院 | www午夜视频 | 毛片一区二区三区 | 国产精品综合一区二区 | 久久久久国产精品一区二区 | 国产一区二区三区视频免费观看 | 日韩在线视频一区 | 欧美二区三区 | 在线亚洲精品 | 国产精品网址 | 欧美性网 | 黄色免费网站在线看 | 自拍视频网| 日韩中文字幕一区二区 | 一级欧美一级日韩片 | 久久天堂 | 国产成人啪免费观看软件 | 中文字幕综合 | 欧美爱爱视频网站 | 精品国产乱码久久久久久图片 | 伊人激情综合网 | 精品视频免费在线 | 亚洲视频中文字幕 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产综合精品一区二区三区 |