欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 剛剛接觸stm32,有沒有大佬幫我看一下程序 LCD1602不顯示 [打印本頁]

作者: 程序新手    時間: 2018-4-21 14:41
標題: 剛剛接觸stm32,有沒有大佬幫我看一下程序 LCD1602不顯示
這個程序的LCD1602引腳D0-D7是接到PB8-PB15嗎?   RS  PB5,     RW  PB4 ,      E  PB3這樣接對嗎
我這樣接的為什么不顯示

  1. #include "public.h"
  2. #define DATA (GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15)
  3. #define rs (GPIO_Pin_5)
  4. #define rw (GPIO_Pin_4)
  5. #define e (GPIO_Pin_3)
  6. u8 num[]="0123456789";
  7. u8 a[]=" welcome to PZ  ";
  8. u8 b[]=" Beautiful Girl ";
  9. void GPIOINIT()   //¶Ë¿Ú³õʼ»¯
  10. {
  11. GPIO_InitTypeDef GPIO_InitStructure;
  12. GPIO_InitStructure.GPIO_Pin=DATA|rs|rw|e;
  13. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  14. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  15. GPIO_Init(GPIOB,&GPIO_InitStructure);
  16. // GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);//°Ñµ÷ÊÔÉèÖÃÆÕͨIO¿Ú
  17. }
  18. void RCCINIT() //ϵͳ³õʼ»¯
  19. {
  20. SystemInit();
  21. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  22.     //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  23. //Èç¹û²»¼ÓÕâÌõÓï¾ä³ÌÐòÏÔʾ¾Í»á³ö´í£¬¼´Ã»Óдò¿ª¶Ë¿Ú¸´Óù¦ÄܵÄʱÖÓÅäÖÃ
  24. }
  25. u8 readbusy() //æÐźżì²â
  26. {  
  27. u8 f;
  28. GPIO_ResetBits(GPIOB,rs);  
  29. GPIO_SetBits(GPIOB,rw);
  30. GPIO_SetBits(GPIOB,e);
  31. f=((GPIO_ReadInputData(GPIOB)&0X8000));
  32. delayms(10);
  33. GPIO_ResetBits(GPIOB,e);
  34. return f;  
  35. }
  36. void lcdwrc(u8 c)   //д°ËλÊý¾Ý
  37. {
  38. while(readbusy());
  39. GPIO_ResetBits(GPIOB,rs);  
  40. GPIO_ResetBits(GPIOB,rw);
  41. GPIO_ResetBits(GPIOB,e);
  42. delayms(1);
  43. GPIOB->BSRR = c<<8 & 0xf000;  //½«Êý¾ÝË͵½P0¿Ú
  44.     GPIOB->BRR = ((~c)<<8) & 0xf000;
  45. delayms(1);
  46. GPIO_SetBits(GPIOB,e);
  47. delayms(1);
  48. GPIO_ResetBits(GPIOB,e);
  49. delayms(1);
  50. }
  51. void lcdwrc4bit(long c)    //д8λÊý¾Ý,ͨ¹ý4¸öÒý½Å
  52. {
  53. while(readbusy());
  54. GPIO_ResetBits(GPIOB,rs);  
  55. GPIO_ResetBits(GPIOB,rw);
  56. GPIO_ResetBits(GPIOB,e);
  57. delayms(1);
  58. GPIOB->BSRR = c<<8 & 0xf000;  //½«Êý¾ÝË͵½P0¿Ú
  59.     GPIOB->BRR = ((~c)<<8) & 0xf000;
  60. delayms(1);
  61. GPIO_SetBits(GPIOB,e);
  62. delayms(1);
  63. GPIO_ResetBits(GPIOB,e);
  64. delayms(1);
  65. GPIOB->BSRR = c<<12 & 0xf000;  //½«Êý¾ÝË͵½P0¿Ú
  66.     GPIOB->BRR = ((~c)<<12) & 0xf000;
  67. delayms(1);
  68. GPIO_SetBits(GPIOB,e);
  69. delayms(1);
  70. GPIO_ResetBits(GPIOB,e);
  71. delayms(1);
  72. }
  73. void lcdwrd(long dat)   //¶Á°ËλÊý¾Ýͨ¹ý4¸öÒý½Å
  74. {
  75. while(readbusy());  
  76. GPIO_SetBits(GPIOB,rs);  
  77. GPIO_ResetBits(GPIOB,rw);
  78. GPIO_ResetBits(GPIOB,e);
  79. delayms(1);
  80. GPIOB->BSRR = dat<<8 & 0xf000;  //½«Êý¾ÝË͵½P0¿Ú
  81.     GPIOB->BRR = ((~dat)<<8) & 0xf000;
  82. delayms(1);
  83. GPIO_SetBits(GPIOB,e);
  84. delayms(1);
  85. GPIO_ResetBits(GPIOB,e);
  86. delayms(1);
  87. GPIOB->BSRR = dat<<12 & 0xf000;  //½«Êý¾ÝË͵½P0¿Ú
  88.     GPIOB->BRR = ((~dat)<<12) & 0xf000;
  89. delayms(1);
  90. GPIO_SetBits(GPIOB,e);
  91. delayms(1);
  92. GPIO_ResetBits(GPIOB,e);
  93. delayms(1);
  94. GPIO_ResetBits(GPIOB,rs);
  95. }
  96. void lcdinit()      //LCD³õʼ»¯
  97. {
  98. delayms(15);
  99. lcdwrc4bit(0x32);
  100. delayms(5);
  101. lcdwrc4bit(0x28);
  102. delayms(5);
  103. lcdwrc4bit(0x08);
  104. delayms(5);
  105. lcdwrc4bit(0x01);
  106. delayms(5);
  107. lcdwrc4bit(0x06);
  108. delayms(5);
  109. lcdwrc4bit(0x0c);
  110. delayms(5);
  111. }
  112. void display()    //ÏÔʾ
  113. {
  114. u8 i;
  115. lcdwrc4bit(0x00+0x80);
  116. for(i=0;i<16;i++)
  117. {
  118.   lcdwrd(a[i]);
  119. }
  120. lcdwrc4bit(0x40+0x80);
  121. for(i=0;i<16;i++)
  122. {
  123.   lcdwrd(b[i]);
  124. }
  125. }
  126. int main()
  127. {

  128. RCCINIT();   //  ÏµÍ³Ê±ÖÓ³õʼ»¯
  129. GPIOINIT();   //  ¶Ë¿Ú³õʼ»¯
  130. lcdinit(); //   Òº¾§ÏÔʾ³õʼ»¯
  131. while(1)
  132. {
  133.   display();   
  134. }
  135. }
復制代碼

作者: 程序新手    時間: 2018-4-21 15:01
有人看見嗎
作者: 程序新手    時間: 2018-4-21 15:03
頂一下
作者: 51在路上    時間: 2018-4-22 17:27
LCD1602要5v供電,stm32是3.3v.你確定電平轉換正確嗎?
作者: 程序新手    時間: 2018-4-23 08:25
51在路上 發表于 2018-4-22 17:27
LCD1602要5v供電,stm32是3.3v.你確定電平轉換正確嗎?

32我用的是上面帶的USB電源,1602用的是5v
作者: 程序新手    時間: 2018-4-23 08:25
51在路上 發表于 2018-4-22 17:27
LCD1602要5v供電,stm32是3.3v.你確定電平轉換正確嗎?

我上面那樣接線對嗎
作者: senser51    時間: 2018-4-23 10:22
GPIOB->BSRR = c<<8 & 0xf000;
===>GPIOB->BSRR = c<<8 & 0xff00;
高8位
作者: PC7275    時間: 2018-4-23 10:59
查一下1602的顯示方式,找好每一個點的顯示再進行傳輸
作者: 程序新手    時間: 2018-4-23 12:55
PC7275 發表于 2018-4-23 10:59
查一下1602的顯示方式,找好每一個點的顯示再進行傳輸

你覺得我連這個都不會嗎??? 老鐵!!!
作者: 我叫小大打    時間: 2020-3-29 21:23
程序新手 發表于 2018-4-23 08:25
32我用的是上面帶的USB電源,1602用的是5v

你這樣接電源,都沒有共GND給它,肯定不行的啊
作者: 黃youhui    時間: 2020-3-30 08:40
初始化包括io口初始化和指令初始化,你有沒有使用指令對LCD初始化

(C.png (135.94 KB, 下載次數: 27)

uc1617s指令

uc1617s指令

作者: 左岸的花會開    時間: 2020-3-31 10:42
泥都知道打點了,那就應該知道取模呀,我沒有看到你取得模,打點函數,根據字模打點,而且,打點的字模大小跟取模大小要一致,完成后,在進行打單個字符,再根據打單個字符,打印字符串,得一步一步的來,你也可以把你那一句話直接取模,直接打點函數打印該字模




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1