找回密码
 立即注册
×

00:00:00

您有一张0.1元限时体验卡,马上领取获得VIP尊享特权。

AI8051U驱动ST7796时遇到问题

2024-11-27 21:57 来自 272761180 发布 @ 综合讨论

  1. void SPI_Init(void)       
  2. {
  3.         /****        配置SPI的IO引脚模式        ****/
  4.         P1M0 |= 0xe0;                //配置MOSI/MISO/SCLK引脚为推挽输出
  5.         P1M1 &= ~0xe0;
  6.         P1PU |= 0xe0;                //允许准双向口内部上拉电阻       
  7.         TFT_MOSI = 1;                //引脚上拉
  8.         TFT_MISO = 1;
  9.         TFT_SCLK = 1;
  10.        
  11.         /****        配置SPI模式        ****/
  12.        
  13.         SPI_S1 = 0x00;        //        选择SPI1的引脚 00:P1+        01:P2+        10:P4+        11:P3+
  14.         SPI_S0 = 0x00;

  15.         //控制寄存器
  16.         SSIG = 0X01;                //控制寄存器 忽略SS引脚功能
  17.         SPEN = 0x01;                //使能SPI
  18.         DORD = 0x00;                //先发送高位MSB,若为1则先发送低位LSB
  19.         MSTR = 0x01;                //设置为主机模式,单主单从模式。须根据SSIG进行不同设置
  20.         CPOL = 0x01;                //时钟极性为高,即空闲时是高电平。极性相反时传输数据
  21.         CPHA = 0x01;                //前沿驱动,后沿采样
  22.        
  23.         //时钟配置
  24.         //系统默认启动内部高速HRC,CLKSEL = 0x00:配置为内部高速HRC -00-00-> MCLK -> HSIOCK -HSCLKDIV-> HSCLK        -SPI_CLKDIV-> SPI
  25.         //同时,HSCLK是高速外设时钟源。当使用HSPI时在3V下最高频率为20MHz(同时调整PxSR寄存器为高速输出模式)
  26.         CLKSEL                 &= ~0x40;        //选择MCLK为高速IO时钟源
  27.         HSCLKDIV                 = 0x01;                //高速时钟1分频 -> 24M
  28.         SPI_CLKDIV         = 0x01;                //SPI输入时钟1分频,0-255        -> 24M                                                       
  29.         SPR1 = 0x01;                                        //SCLK频率 = 24MHz/2 = 12MHz
  30.         SPR0 = 0x01;
  31.        
  32.         //中断配置
  33.         ESPI = 0x00;                                //禁止SPI中断
  34.         SPSTAT = 0xc0;                        //清除中断标志位SPIF和写冲突标志位WCOL

  35.         UART1_printf("开启LCD的SPI\n");
  36. }


  37. u8 SPI_WriteByte(u8 Byte)
  38. {
  39.         SPDAT = Byte;
  40.         while(!SPIF);        //等待接收完一个byte
  41.         SPSTAT = 0xc0;                //清SPIF/WCOL标志
  42.         return (SPDAT);
  43. } SPI的配置有问题吗?


  44. [code]void LCD_WR_REG(u8 dat)
  45. {
  46.   
复制代码

免责声明:

本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;

热门标签 更多

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-14 13:27 , Processed in 0.061602 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部