找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3597|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STM32驅(qū)動1602 I2C程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:228408 發(fā)表于 2020-4-9 18:26 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
i2c1602驅(qū)動程序在這里喲

單片機(jī)源程序如下:
  1. /***
  2.                
  3.                 文件名稱:I2C1602完整驅(qū)動程序
  4.                 文件標(biāo)識:HMI
  5.                 摘    要:1602程序,旋轉(zhuǎn)編碼器程序,串口數(shù)字及字符接收程序
  6.                
  7.                
  8.                 當(dāng)前版本:
  9.                 作    者:Jian
  10.                 完成日期:2017-7-15
  11.                
  12.                 取代版本:
  13.                 原作者  :
  14.                 完成日期:
  15.                
  16.                
  17. ***/

  18. #include "stm32f10x.h"
  19. #include "delay.h"
  20. #include "1602_iic_sw.h"
  21. #include<stdio.h>
  22. #include "USART1.h"
  23. #include "EXIT.h"




  24. int fputc(int ch,FILE*f)
  25. {
  26.   USART_SendData(USART1,ch);
  27.   while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==0);       //printf重定向
  28.   return(ch);
  29. }

  30. u16 Data=0;
  31. extern u8 data0[100],data1[100],data2[100],data3[100],
  32.           data4[100];

  33. /*********************
  34. 函數(shù)名稱:int main(void)
  35. 函數(shù)功能:主函數(shù)
  36. 入口參數(shù):無
  37. 返回值:無
  38. **********************/


  39. int main(void)
  40. {
  41. //        int data = 0x21;
  42.         u8*p;
  43.         u8 i=0;
  44.         u8 usart=0;
  45.         u8 data=0;
  46. //        u8 j=0;                                                  
  47.         DelayInit(72);
  48.         init_1602();
  49.   USART1_Configuration();                         //定義和初始化
  50.         EXTI_Configuration();
  51.         Data=99;
  52. //  setCursor(11, 1,Blink);
  53. //        p=ReadPosition();
  54. //  printf("\n當(dāng)前光標(biāo)位置為:%d,%d",*p,*(p+1));
  55.   lcdPrint(0,0,"Num now:");
  56.         PrintNum(8,0,Data);
  57.   while(1);

  58.                
  59. //  setCursor(0, 0,Blink);
  60. //        receive_usart();

  61. //  for(i=0;i<=99;i++)
  62. //        {
  63. //    writeOneChar(DATA, data2[i]);
  64. //                if(data2[i]==0x2F)   break;
  65. //        }


  66.        
  67. //        USART_SendData(USART1,Data);
  68.         //        writeOneChar(CMD,0x28);
  69. //  Data=readOneChar(CMD);
  70. //  USART_SendData(USART1,Data);
  71. //        while(1)
  72. //        {
  73. //                if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)==1)
  74. //                {       
  75. //                  Data = USART_ReceiveData(USART1);
  76. //         
  77. //      i++;                       
  78. //                }
  79. //                if(i>=16&&j==0)
  80. //                {         
  81. //                        setCursor(0,1);
  82. //                        i=0;
  83. //                        j++;
  84. //                }
  85. //                if(i>=16&&j==1)
  86. //                {
  87. //                  Delay1ms(500);
  88. //                        writeOneChar(CMD, 0x01);
  89. //                        Delay1ms(500);  
  90. //                        setCursor(0,0);
  91. //                        i=0;
  92. //                        j=0;
  93. //                }
  94. //        }               
  95. //        while(1)
  96. //        {       
  97. //          setCursor(2, 1);
  98. //                lcdPrintf("STM32F103C8");
  99. //                Delay1ms(500);  
  100. //                setCursor(2, 1);
  101. //                lcdPrint("            ");
  102. //        }       
  103. //        setCursor(0, 1);
  104. //       
  105. ////        while(1)
  106. ////        {
  107. ////                writeOneChar(DATA, data);
  108. ////                Delay1ms(500);
  109. ////                data++;j++;
  110. ////                if(j == 16)
  111. ////                {
  112. ////                        setCursor(0, 1);
  113. ////                        j = 0;
  114. ////                }
  115. ////                if(data == 255)
  116. ////                {
  117. ////                        setCursor(0, 1);
  118. ////                        data = 0x21;
  119. ////                }
  120. ////        }
  121. //          // add your code here ^_^。
  122. }







  123. /******************* (C) COPYRIGHT 2016 Hacker *****END OF FILE************/
復(fù)制代碼

所有資料51hei提供下載:
I2C1602完整驅(qū)動程序1.7z (199.81 KB, 下載次數(shù): 139)


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

使用道具 舉報(bào)

沙發(fā)
ID:208271 發(fā)表于 2024-3-26 11:59 | 只看該作者
已測試,可用,謝謝樓主,模擬IIC,可隨意更換管腳。之前固定IIC太難用了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表