找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3567|回复: 1
打印 上一主题 下一主题
收起左侧

STM32驱动1602 I2C程序

[复制链接]
跳转到指定楼层
楼主
ID:228408 发表于 2020-4-9 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
i2c1602驱动程序在这里哟

单片机源程序如下:
  1. /***
  2.                
  3.                 文件名称:I2C1602完整驱动程序
  4.                 文件标识:HMI
  5.                 摘    要:1602程序,旋转编码器程序,串口数字及字符接收程序
  6.                
  7.                
  8.                 当前版本:
  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. 函数名称:int main(void)
  35. 函数功能:主函数
  36. 入口参数:无
  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,%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************/
复制代码

所有资料51hei提供下载:
I2C1602完整驱动程序1.7z (199.81 KB, 下载次数: 139)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:208271 发表于 2024-3-26 11:59 | 只看该作者
已测试,可用,谢谢楼主,模拟IIC,可随意更换管脚。之前固定IIC太难用了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表