查看: 6464|回复: 17

[原创] YL-KL26Z驱动液晶12864程序调试完成了

[复制链接]
  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-5-9 21:58:08 | 显示全部楼层 |阅读模式
    本帖最后由 wambob 于 2015-5-9 22:26 编辑

    在人机界面上,显示不可缺少,液晶、数码管、OLED、段LCD等,相信你不会陌生。自从拿下GPIO后,就开始着手SPI,参考关盘里的SPI两个例程,参考手册,经过几天的辛苦调试,总算水落石出了。
    前面已经介绍了SPI和12864的接口https://www.nxpic.org.cn/module/forum/thread-598706-1-1.html
    手头的液晶质量不敢恭维,可视角度非常差,以至于有显示了,但角度不好的话,只看到亮屏。这个在程序调试好后调解了下液晶的显示,效果比开始好了。若不是直视了下,我还在纳闷,程序明明写的不差多少了,就是不显示。开始显示的时候出现乱码,这个在学习ADI的时候碰到过,估计是12864的响应时间问题,+个简单的延迟函数解决了。
    使用了PTC5 、PTC6作为SPI0的SCK 、SID。和+5V、GND,焊了4个排针接到12864上。
    SPI0的时钟来自总线时钟,在调试的时候,发现初始化时钟MCGOUTCLK==48M,但是OUTDIV1分频为2,OUTDIV4=1.也就是说,系统时钟是24M,总线时钟也是24M。
    好吧,就以24M来计算SPI的波特率吧。
    SPI Baud Rate Register (SPIx_BR)
    SPI.JPG

    计算公式
    SPI0.JPG
    以500K计算,可以得到寄存器值01000000
    时钟设置成CPOL=1,CPHA=1

    1. <P><FONT size=3 face=宋体>/*
    2. * File: SPI-DEMO.c
    3. * Purpose: Main process
    4. *
    5. */

    6. #include "common.h"

    7. void LcdInit(void);
    8. void SPIInit(void);
    9. void WriteCommandLCM(int WCLCM);
    10. void WriteDataLCM(int WDLCM);
    11. void display_x(int row ,char* dispx);
    12. void spiTX(SPI_MemMapPtr SPI,unsigned char ucData);
    13. void Send_byte(unsigned char Byte) ;
    14. void delay(unsigned long counnt);
    15. unsigned char szTemp[16] = "";
    16. char dispx[]={" ´ºÃß²»¾õÏþ, "} ;
    17. char dispy[]={" ´¦´¦ÎÅÌäÄñ¡£ "} ;
    18. char dispz[]={" Ò¹À´·çÓêÉù£¬ "} ;
    19. char dispw[]={" »¨ÂäÖª¶àÉÙ¡£ "} ;
    20. /********************************************************************/
    21. int main (void)
    22. {

    23. SystemCoreClockUpdate ();
    24. SPIInit();
    25. LcdInit();
    26. display_x(0x80,dispx);
    27. display_x(0x88,dispy);
    28. display_x(0x90,dispz);
    29. display_x(0x98,dispw);
    30. while(1)
    31. {
    32. }
    33. }
    34. /********************************************************************/
    35. void LcdInit(void)
    36. {
    37. WriteCommandLCM(0x30);
    38. WriteCommandLCM(0x02);
    39. WriteCommandLCM(0x06);
    40. WriteCommandLCM(0x0c);
    41. WriteCommandLCM(0x01);
    42. WriteCommandLCM(0x80);
    43. }
    44. void SPIInit(void)
    45. {
    46. SIM->SCGC5 |=3U<<10; //使能端口B、C</FONT></P>
    47. <P><FONT size=3 face=宋体>SIM->SCGC4 |=1U<<22; //使能SPI0

    48. /* 初始化SPI管脚*/


    49. PORTC_PCR5 |= PORT_PCR_MUX(2); /* 开启PTC5复用功能2 SPI0 SCK */

    50. PORTC_PCR6 |= PORT_PCR_MUX(2); /* 开启PTC6复用功能2 SPI0 MOSI*/


    51. SPI0->C1|=0x58; //使能主SPI CPOL=1 CPHA=1
    52. SPI0->C2|=0x00; // 8bit 禁止中断,采用查询方式
    53. SPI0->BR|=0x40; //波特率500K

    54. }

    55. void spiTX(SPI_MemMapPtr SPI,unsigned char ucData)
    56. {
    57. while((SPI->S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK); /* 发送前查询发送空标志是否置位 */
    58. SPI->DL = ucData;
    59. }
    60. void WriteCommandLCM(int WCLCM)
    61. {
    62. unsigned char Hdata,Ldata;
    63. Hdata = WCLCM&0xf0; // È¡¸ß4λ
    64. Ldata = ( WCLCM << 4) & 0xf0; // È¡µÍ4λ
    65. Send_byte(0xF8); // ´ÓMCUµ½LCDдָÁî
    66. Send_byte(Hdata); // ·¢Ë͸ß4λ
    67. Send_byte(Ldata); // ·¢Ë͵Í4λ
    68. }


    69. void WriteDataLCM(int WDLCM)
    70. {
    71. unsigned char Hdata,Ldata;
    72. Hdata = WDLCM & 0xf0; // È¡¸ß4λ
    73. Ldata = ( WDLCM << 4) & 0xf0; // È¡µÍ4λ
    74. Send_byte(0xFa); //´ÓMCUµ½LCDдÊý¾Ý
    75. Send_byte(Hdata); // ·¢ËÍ
    76. Send_byte(Ldata);
    77. }


    78. void display_x(int row ,char* dispx)
    79. {
    80. unsigned char a;
    81. WriteCommandLCM(row);

    82. for(a=0;a<16;a++)
    83. {
    84. WriteDataLCM(*dispx++);
    85. }
    86. }
    87. void Send_byte(unsigned char Byte)
    88. {
    89. // while((SPI0_S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK);
    90. spiTX( SPI0_BASE_PTR,Byte);
    91. delay(10000);


    92. }
    93. void delay(unsigned long counnt){

    94. volatile int i;

    95. for(i=0; i < counnt; i++){

    96. }

    97. }
    98. </P></FONT>
    复制代码
    效果图
    IMG_20150509_215556.jpg
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-5-9 23:49:51 | 显示全部楼层
    不错哦。。。。 null.png null.png null.png null.png null.png null.png null.png null.png null.png null.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-5-10 09:21:02 | 显示全部楼层
    不错的分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13121
    最后登录
    2019-1-27
    发表于 2015-5-11 14:26:18 | 显示全部楼层
    给楼主点赞!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-30 08:51
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    4

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    202
    最后登录
    2022-7-7
    发表于 2015-5-11 14:33:15 | 显示全部楼层
    前来围观,给楼主点赞
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
     楼主| 发表于 2015-5-11 20:17:29 | 显示全部楼层
    jasonliu65535 发表于 2015-5-11 14:33
    前来围观,给楼主点赞

    谢谢谢谢
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    251

    帖子

    0

    高级会员

    Rank: 4

    积分
    690
    最后登录
    2016-11-3
    发表于 2015-5-11 20:58:54 | 显示全部楼层
    为楼主点赞
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    34

    帖子

    0

    注册会员

    Rank: 2

    积分
    98
    最后登录
    2015-6-6
    发表于 2015-5-11 23:39:52 | 显示全部楼层
    先收下了,学习KL26的时候会用得着
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
     楼主| 发表于 2015-5-12 10:41:33 | 显示全部楼层
    三寸日光 发表于 2015-5-11 23:39
    先收下了,学习KL26的时候会用得着

    一起学习讨论,技术才会提高
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2015-5-13 11:35:16 | 显示全部楼层
    非常感谢你关于Kinetis的经验分享 !
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-19 09:40 , Processed in 0.111038 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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