找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32單片機解決控制5v的1602液晶

[復制鏈接]
跳轉到指定樓層
樓主
ID:348627 發(fā)表于 2018-10-23 22:30 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


本人學生菜鳥一枚,剛從51渡過。打算把51上實現(xiàn)的功能在stm32上面實現(xiàn)一遍, 遇到5v的1602 用了很長時間才搞定。目前所有的io口都是用的sn74h245來驅動的。 我遇到的問題就是 stm32 3.3v 驅動不了 還有就是延時的問題 ,有興趣的可以試試。

stm32單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "delay.h"

  3. #define Set_RS  GPIO_SetBits(GPIOB,GPIO_Pin_15)
  4. //#define Set_RW  GPIO_SetBits(GPIOB,GPIO_Pin_3)
  5. #define Set_EN  GPIO_SetBits(GPIOB,GPIO_Pin_2)

  6. #define CLR_RS  GPIO_ResetBits(GPIOB,GPIO_Pin_15)
  7. #define CLR_RW  GPIO_ResetBits(GPIOB,GPIO_Pin_3)
  8. #define CLR_EN  GPIO_ResetBits(GPIOB,GPIO_Pin_2)

  9. GPIO_InitTypeDef GPIO_InitStructure;

  10. unsigned char table[]="You are big Pig";

  11. void Send_Com(unsigned char Send_Com)
  12. {

  13. CLR_RS;
  14. GPIO_Write(GPIOA,Send_Com);
  15. Delay_ms(10);
  16. Set_EN;
  17. Delay_ms(10);
  18. CLR_EN;
  19. }

  20. void Send_Dat(unsigned char Send_Dat)
  21. {

  22. Set_RS;
  23. GPIO_Write(GPIOA,Send_Dat);
  24. Delay_ms(10);
  25. Set_EN;
  26. Delay_ms(10);
  27. CLR_EN;
  28. }
  29. void init()
  30. {

  31. CLR_EN;

  32. Send_Com(0x38);

  33. Send_Com(0x0c);
  34.        
  35. Send_Com(0x06);
  36.        
  37. Send_Com(0x01);

  38. }
  39. void GPIO_Configuration(void)
  40. {
  41. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);       
  42.        
  43. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15|GPIO_Pin_3|GPIO_Pin_2;
  44. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  45. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  46. GPIO_Init(GPIOB,&GPIO_InitStructure);
  47.        
  48.        
  49. 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;
  50. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  51. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  52. GPIO_Init(GPIOA,&GPIO_InitStructure);



  53. }




  54. int main(void)
  55. {

  56. unsigned char num;

  57. GPIO_Configuration();

  58. init();

  59. Send_Com(0x80);

  60. for(num=0;num<=14;num++)
  61. {
  62. Send_Dat(table[num]);
  63. Delay_ms(10);
  64. }
  65. while(1);

  66. }
復制代碼

所有資料51hei提供下載:
1602液晶顯示.rar (216.63 KB, 下載次數(shù): 107)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表