找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1579|回复: 2
收起左侧

stm32 1602显示字符串仿真正常但是实物满屏都是u

[复制链接]
ID:411304 发表于 2018-10-18 15:46 | 显示全部楼层 |阅读模式
在proteus里仿真正常,但是实物上显示玩最后一个字符 u 后 还会继续显示u 。屏幕满了之后会从左上角开始 覆盖前面的字符。最后满屏都是u。
IMG_0522.JPG IMG_0523.JPG

先贴代码
  1. #include "stm32f10x.h"
  2. #define Set_RS  GPIO_SetBits(GPIOB,GPIO_Pin_0)
  3. #define Set_RW  GPIO_SetBits(GPIOB,GPIO_Pin_1)
  4. #define Set_EN  GPIO_SetBits(GPIOB,GPIO_Pin_3)

  5. #define CLR_RS  GPIO_ResetBits(GPIOB,GPIO_Pin_0)
  6. #define CLR_RW  GPIO_ResetBits(GPIOB,GPIO_Pin_1)
  7. #define CLR_EN  GPIO_ResetBits(GPIOB,GPIO_Pin_3)


  8. void delay_nus(unsigned long n)
  9. {
  10.         unsigned long j;
  11.         while(n--)
  12.         { j=8;
  13.           while(j--);
  14.         }
  15. }


  16. void delay_nms(unsigned long n)
  17. {
  18.         while(n--)
  19.            delay_nus(1100);
  20. }





  21. //unsigned char table[]="abcdefghijklmvop";
  22. //u8 table[]="abcdefghijklmvop";

  23. u8  table1[]="->China Yancheng" ;
  24. u8  table2[]="Welcome To You" ;

  25. //void Send_Com(unsigned char Send_Com)
  26. void Send_Com(int Send_Com)
  27. {

  28. CLR_RS;
  29.         delay_nms(1);
  30. CLR_RW;
  31.                 delay_nms(1);
  32. //CLR_EN;
  33. Set_EN;
  34.                 delay_nms(1);
  35. GPIO_Write(GPIOA,(u16)Send_Com);
  36. delay_nms(5);
  37. CLR_EN;
  38. delay_nms(5);
  39. Set_EN;

  40. }

  41. void Send_Dat(int Send_Dat)
  42. {

  43. Set_RS;
  44.                 delay_nms(1);
  45. CLR_RW;        
  46.                 delay_nms(1);
  47. Set_EN;
  48.                 delay_nms(1);
  49. GPIO_Write(GPIOA,Send_Dat);
  50. delay_nms(5);
  51. CLR_EN;
  52. delay_nms(5);
  53. Set_EN;
  54. }

  55. void init()
  56. {
  57. Set_EN;
  58. delay_nms(15);
  59. Send_Com(0x38);
  60. delay_nms(5);
  61. Send_Com(0x38);
  62. delay_nms(5);
  63. Send_Com(0x38);
  64. delay_nms(5);        
  65. Send_Com(0x38);
  66. delay_nms(5);
  67. Send_Com(0x08);
  68. delay_nms(1);
  69. Send_Com(0x01);
  70. delay_nms(1);
  71. Send_Com(0x06);
  72. delay_nms(1);
  73. Send_Com(0x0c);
  74. delay_nms(1);
  75. }

  76. void GPIO_Configuration(void)
  77. {
  78. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC, ENABLE);
  79. GPIO_InitTypeDef GPIO_InitStructure;
  80. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3;
  81. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  82. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  83. GPIO_Init(GPIOB,&GPIO_InitStructure);
  84. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  85. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  86. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  87. GPIO_Init(GPIOA,&GPIO_InitStructure);



  88. }




  89. int main(void)
  90. {

  91. //unsigned char num;

  92. GPIO_Configuration();
  93. delay_nms(500);
  94. init();
  95. u8 i;
  96. //while(1)
  97. // {
  98.     Send_Com(0x80);//???????
  99.     for(i=0;i < 16;i++)
  100.     {
  101.        Send_Dat(table1[i]);
  102.              delay_nms(5);
  103.     }

  104.     Send_Com(0x80+0x40);//???????
  105.                              delay_nms(5);
  106.     for(i=0;i < 14;i++)
  107.     {
  108.              Send_Dat(table2[i]);
  109.              delay_nms(5);
  110.     }
  111.                 while(1);
  112.   //}        
  113.         
  114. //delay_nms(5);
  115. //Send_Com(0x80);
  116. //        delay_nms(5);
  117. //
  118. //for(num=0;num<=15;num++)
  119. //{
  120. //Send_Dat(table[num]);
  121. //delay_nms(300);
  122. //}

  123. //while(1);

  124. }
复制代码




回复

使用道具 举报

ID:336981 发表于 2018-10-18 23:26 | 显示全部楼层
1.最有可能B3引脚接触不良
2.解决方法:第一检查B3引脚,第二Send_Dat函数最后一行Set_EN删掉,下降沿写完最后一个字节后不要拉高,也就是空闲状态下B3为低电平更稳定,第三所有数据写完之后把A引脚上的8个数据位置0
回复

使用道具 举报

ID:411304 发表于 2018-10-19 09:14 | 显示全部楼层
AI_ZYZ 发表于 2018-10-18 23:26
1.最有可能B3引脚接触不良
2.解决方法:第一检查B3引脚,第二Send_Dat函数最后一行Set_EN删掉,下降沿写完 ...

谢谢!!! 果然时b3脚有问题 换了一个引脚就好了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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