OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18388|回复: 27

学习STM32笔记 玩TFT第一季

[复制链接]

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
发表于 2012-6-20 01:20:50 | 显示全部楼层 |阅读模式
 咣铛铛咣铛铛~~~~~~~~~~~偶又回来了~~~~

咱们这季来玩  TFT

大大的屏,比刚玩完的OLED大很多,咱对TFT从来没搞过,现在是一头的烟.咋办呢,好,我们从它的蕊片号开始吧.手头上的这个屏还不知是啥型号,原子老大的例程太长太难看了.我们要化简一点.
好!!
大家左手的剪刀举起来!!
大家右手的胶水拿起来!!

对着原子哥的...........................例程冲过去(别看人家的鸡鸡哈,出人命的)

好先Ctrl+C   有用的.

第一:有用的头文件

#include "sys.h"    <<<=====不懂的先不要理,我们以后会一个个来.先玩出兴趣来先
#include "usart.h"    <<<=====不懂的先不要理,我们以后会一个个来.先玩出兴趣来先
#include "delay.h"       <<<=====不懂的先不要理,我们以后会一个个来.先玩出兴趣来先

第二:先将有用的脚命好名

//慢速IO
#define LCD_CS PCout(9)  //片选端口            C9
#define LCD_RS PCout(8)  //数据/命令             PC8    
#define LCD_WR PCout(7)  //写数据  PC7
#define LCD_RD PCout(6)  //读数据  PC6

//PB0~15,作为数据线
#define DATAOUT(x)   GPIOB->ODR=x;         //数据输出
#define DATAIN       GPIOB->IDR;           //数据输入

第三:将IO初始化一下

void LCD_IO_Init(void)
  RCC->APB2ENR|=1<<3;//先使能外设PORTB时钟
  RCC->APB2ENR|=1<<4;//先使能外设PORTC时钟

RCC->APB2ENR|=1<<0;    //开启辅助时钟               <<=====我试过关掉这两行,不行,我现在都不明白关掉JTAG为什么不行,不是共用了两个B口吗,关掉不行吗??怪呀,望原子哥解释
JTAG_Set(SWD_ENABLE);  //开启SWD                       <<=====我试过关掉这两行,不行,我现在都不明白关掉JTAG为什么不行,不是共用了两个B口吗,关掉不行吗??怪呀,望原子哥解释
 
//PORTC6~10  推挽输出 
GPIOC->CRH&=0XFFFFF000;
GPIOC->CRH|=0X00000333; 
GPIOC->CRL&=0X00FFFFFF;
GPIOC->CRL|=0X33000000;  
GPIOC->ODR|=0X07C0;   
//PORTB 推挽输出 
GPIOB->CRH=0X33333333;
GPIOB->CRL=0X33333333;   
GPIOB->ODR=0XFFFF;
}

第四:

//正常IO写 寄存器 函数
void LCD_WR_REG(u8 data)
LCD_RS=0;//写地址  
  LCD_CS=0; 
DATAOUT(data); 
LCD_WR=0; 
LCD_WR=1; 
  LCD_CS=1;   

第五:

//正常IO写 8位数据 函数
void LCD_WR_DATA(u16 data)

{
LCD_RS=1;
LCD_CS=0;
DATAOUT(data);
LCD_WR=0;
LCD_WR=1;
LCD_CS=1;
} 
第六:

//写寄存器
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{
LCD_WR_REG(LCD_Reg);  
LCD_WR_DATA(LCD_RegValue);       
}

第七:

//读寄存器
u16 LCD_ReadReg(u8 LCD_Reg)
{    
u16 t;
LCD_WR_REG(LCD_Reg);    //写入要读的寄存器号  
GPIOB->CRL=0X88888888;  //PB0-7  上拉输入
GPIOB->CRH=0X88888888;  //PB8-15 上拉输入
GPIOB->ODR=0XFFFF;      //全部输出高

LCD_RS=1;
LCD_CS=0;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD=0;    
LCD_RD=1;
t=DATAIN;  
LCD_CS=1; 
 
GPIOB->CRL=0X33333333; //PB0-7  上拉输出
GPIOB->CRH=0X33333333; //PB8-15 上拉输出
GPIOB->ODR=0XFFFF;    //全部输出高
return t;  
}      

以上的是不是非常简单明了? 非常非常的简单.其实我们用很多外设,都几乎差不多的步骤.哈哈

好了,有用的东东全Ctrl+C下来了.我们将这些东东拼一起,炒一碟菜叫:   TFT屏的型号.

从原子的例程我们学到,写0x0001到TFT屏的0x0000号寄存器,然后等50毫秒,再读一下寄存器0x0000.就会读到屏的型号.(别指望读出下期的头奖彩票号码)

好了,我们写出主程式如下:


int main(void)
{
  u16 LCD_Code;
  
  Stm32_Clock_Init(9);
  delay_init(72);
  uart_init(72,9600);
  LCD_IO_Init();
  
  while (1) 
    {   
delay_ms(50);   // delay 50 ms 

LCD_WriteReg(0x0000,0x0001);

delay_ms(50);   // delay 50 ms 

LCD_Code = LCD_ReadReg(0x0000);  

printf(" LCD ID:%x\n",LCD_Code); //打印LCD ID
    }
}

丢到板子里去运行...................然后打开我们的COM口连接工具.

看到没,我的屏的型号是:   LCD ID:b505

B505   嗯嗯.不知你们的是不是,但没问题了.我们知道后会初始化的.

不要说麻烦,所有的屏都要初始化,最原始的1206也要.除非你用7段数码管.

原子老大帮我们收集了很多型号的初始化代码. 我们就少做了很多工夫.我们拿起Ctrl+C,手起刀落,剪就是了.
看完成了:

void LCD_init()                       //  LCD ID: 0xB505
{
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x00a4,0x0001);
delay_ms(20);   
LCD_WriteReg(0x0060,0x2700);
LCD_WriteReg(0x0008,0x0202);
LCD_WriteReg(0x0030,0x0214);
LCD_WriteReg(0x0031,0x3715);
LCD_WriteReg(0x0032,0x0604);
LCD_WriteReg(0x0033,0x0e16);
LCD_WriteReg(0x0034,0x2211);
LCD_WriteReg(0x0035,0x1500);
LCD_WriteReg(0x0036,0x8507);
LCD_WriteReg(0x0037,0x1407);
LCD_WriteReg(0x0038,0x1403);
LCD_WriteReg(0x0039,0x0020);
LCD_WriteReg(0x0090,0x001a);
LCD_WriteReg(0x0010,0x0000);
LCD_WriteReg(0x0011,0x0007);
LCD_WriteReg(0x0012,0x0000);
LCD_WriteReg(0x0013,0x0000);
delay_ms(20);
LCD_WriteReg(0x0010,0x0730);
LCD_WriteReg(0x0011,0x0137);
delay_ms(20);
LCD_WriteReg(0x0012,0x01b8);
delay_ms(20);
LCD_WriteReg(0x0013,0x0f00);
LCD_WriteReg(0x002a,0x0080);
LCD_WriteReg(0x0029,0x0048);
delay_ms(20);
LCD_WriteReg(0x0001,0x0100);
LCD_WriteReg(0x0002,0x0700);
LCD_WriteReg(0x0003,0x1230);
LCD_WriteReg(0x0008,0x0202);
LCD_WriteReg(0x000a,0x0000);
LCD_WriteReg(0x000c,0x0000);
LCD_WriteReg(0x000d,0x0000);
LCD_WriteReg(0x000e,0x0030);
LCD_WriteReg(0x0050,0x0000);
LCD_WriteReg(0x0051,0x00ef);
LCD_WriteReg(0x0052,0x0000);
LCD_WriteReg(0x0053,0x013f);
LCD_WriteReg(0x0060,0x2700);
LCD_WriteReg(0x0061,0x0001);
LCD_WriteReg(0x006a,0x0000);
//LCD_WriteReg(0x0080,0x0000);
//LCD_WriteReg(0x0081,0x0000);
LCD_WriteReg(0x0090,0X0011);
LCD_WriteReg(0x0092,0x0600);
LCD_WriteReg(0x0093,0x0402);
LCD_WriteReg(0x0094,0x0002);
delay_ms(20);
LCD_WriteReg(0x0007,0x0001);
delay_ms(20);
LCD_WriteReg(0x0007,0x0061);
LCD_WriteReg(0x0007,0x0173);
LCD_WriteReg(0x0020,0x0000);
LCD_WriteReg(0x0021,0x0000);   
LCD_WriteReg(0x00,0x22);  
}
我们修改一下主程式:

int main(void)
{
  u16 LCD_Code;
  
  Stm32_Clock_Init(9);
  delay_init(72);
  uart_init(72,9600);
  LCD_IO_Init();

  
   delay_ms(50);   // delay 50 ms 
   LCD_WriteReg(0x0000,0x0001);
   delay_ms(50);   // delay 50 ms 

   LCD_Code = LCD_ReadReg(0x0000);  
   printf(" LCD ID:%x\n",LCD_Code); //打印LCD ID

   LCD_init();
 
  while (1) 
    {   
  ;
    }
}


运行,屏是花的,别惊慌,我们明天再搞.起码,我们走出第一步了.

今天的例程如下:


#include "sys.h"
#include "usart.h"
#include "delay.h"


//快速IO
#define LCD_CS_SET  GPIOC->BSRR=1<<9    //片选端口          PC9
#define LCD_RS_SET GPIOC->BSRR=1<<8    //数据/命令            C8    
#define LCD_WR_SET GPIOC->BSRR=1<<7    //写数据    PC7
#define LCD_RD_SET GPIOC->BSRR=1<<6    //读数据    PC6
    
#define LCD_CS_CLR  GPIOC->BRR=1<<9     //片选端口          PC9
#define LCD_RS_CLR GPIOC->BRR=1<<8     //数据/命令            C8    
#define LCD_WR_CLR GPIOC->BRR=1<<7     //写数据    PC7
#define LCD_RD_CLR GPIOC->BRR=1<<6     //读数据    PC6
    
//慢速IO
#define LCD_CS PCout(9)  //片选端口        PC9
#define LCD_RS PCout(8)  //数据/命令        C8    
#define LCD_WR PCout(7)  //写数据  PC7
#define LCD_RD PCout(6)  //读数据  PC6

//PB0~15,作为数据线
#define DATAOUT(x)   GPIOB->ODR=x;         //数据输出
#define DATAIN       GPIOB->IDR;           //数据输入

void LCD_IO_Init(void)
  RCC->APB2ENR|=1<<3;//先使能外设PORTB时钟
  RCC->APB2ENR|=1<<4;//先使能外设PORTC时钟

RCC->APB2ENR|=1<<0;    //开启辅助时钟
JTAG_Set(SWD_ENABLE);  //开启SWD
 
//PORTC6~10  推挽输出 
GPIOC->CRH&=0XFFFFF000;
GPIOC->CRH|=0X00000333; 
GPIOC->CRL&=0X00FFFFFF;
GPIOC->CRL|=0X33000000;  
GPIOC->ODR|=0X07C0;   
//PORTB 推挽输出 
GPIOB->CRH=0X33333333;
GPIOB->CRL=0X33333333;   
GPIOB->ODR=0XFFFF;
}

//正常IO写 寄存器 函数
void LCD_WR_REG(u8 data)
LCD_RS=0;//写地址  
  LCD_CS=0; 
DATAOUT(data); 
LCD_WR=0; 
LCD_WR=1; 
  LCD_CS=1;   

//正常IO写 8位数据 函数
void LCD_WR_DATA(u16 data)

{
LCD_RS=1;
LCD_CS=0;
DATAOUT(data);
LCD_WR=0;
LCD_WR=1;
LCD_CS=1;
} 

//写寄存器
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{
LCD_WR_REG(LCD_Reg);  
LCD_WR_DATA(LCD_RegValue);       
}


//读寄存器
u16 LCD_ReadReg(u8 LCD_Reg)
{    
u16 t;
LCD_WR_REG(LCD_Reg);    //写入要读的寄存器号  
GPIOB->CRL=0X88888888;  //PB0-7  上拉输入
GPIOB->CRH=0X88888888;  //PB8-15 上拉输入
GPIOB->ODR=0XFFFF;      //全部输出高

LCD_RS=1;
LCD_CS=0;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD=0;    
LCD_RD=1;
t=DATAIN;  
LCD_CS=1; 
 
GPIOB->CRL=0X33333333; //PB0-7  上拉输出
GPIOB->CRH=0X33333333; //PB8-15 上拉输出
GPIOB->ODR=0XFFFF;    //全部输出高
return t;  
}      

void LCD_init()                       //  LCD ID: 0xB505
{
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x0000,0x0000);
LCD_WriteReg(0x00a4,0x0001);
delay_ms(20);   
LCD_WriteReg(0x0060,0x2700);
LCD_WriteReg(0x0008,0x0202);
LCD_WriteReg(0x0030,0x0214);
LCD_WriteReg(0x0031,0x3715);
LCD_WriteReg(0x0032,0x0604);
LCD_WriteReg(0x0033,0x0e16);
LCD_WriteReg(0x0034,0x2211);
LCD_WriteReg(0x0035,0x1500);
LCD_WriteReg(0x0036,0x8507);
LCD_WriteReg(0x0037,0x1407);
LCD_WriteReg(0x0038,0x1403);
LCD_WriteReg(0x0039,0x0020);
LCD_WriteReg(0x0090,0x001a);
LCD_WriteReg(0x0010,0x0000);
LCD_WriteReg(0x0011,0x0007);
LCD_WriteReg(0x0012,0x0000);
LCD_WriteReg(0x0013,0x0000);
delay_ms(20);
LCD_WriteReg(0x0010,0x0730);
LCD_WriteReg(0x0011,0x0137);
delay_ms(20);
LCD_WriteReg(0x0012,0x01b8);
delay_ms(20);
LCD_WriteReg(0x0013,0x0f00);
LCD_WriteReg(0x002a,0x0080);
LCD_WriteReg(0x0029,0x0048);
delay_ms(20);
LCD_WriteReg(0x0001,0x0100);
LCD_WriteReg(0x0002,0x0700);
LCD_WriteReg(0x0003,0x1230);
LCD_WriteReg(0x0008,0x0202);
LCD_WriteReg(0x000a,0x0000);
LCD_WriteReg(0x000c,0x0000);
LCD_WriteReg(0x000d,0x0000);
LCD_WriteReg(0x000e,0x0030);
LCD_WriteReg(0x0050,0x0000);
LCD_WriteReg(0x0051,0x00ef);
LCD_WriteReg(0x0052,0x0000);
LCD_WriteReg(0x0053,0x013f);
LCD_WriteReg(0x0060,0x2700);
LCD_WriteReg(0x0061,0x0001);
LCD_WriteReg(0x006a,0x0000);
//LCD_WriteReg(0x0080,0x0000);
//LCD_WriteReg(0x0081,0x0000);
LCD_WriteReg(0x0090,0X0011);
LCD_WriteReg(0x0092,0x0600);
LCD_WriteReg(0x0093,0x0402);
LCD_WriteReg(0x0094,0x0002);
delay_ms(20);
LCD_WriteReg(0x0007,0x0001);
delay_ms(20);
LCD_WriteReg(0x0007,0x0061);
LCD_WriteReg(0x0007,0x0173);
LCD_WriteReg(0x0020,0x0000);
LCD_WriteReg(0x0021,0x0000);   
LCD_WriteReg(0x00,0x22);  
}




int main(void)
{
  u16 LCD_Code;
  
  Stm32_Clock_Init(9);
  delay_init(72);
  uart_init(72,9600);
  LCD_IO_Init();

  

   LCD_init();
 
  while (1) 
    {   
    delay_ms(50);   // delay 50 ms 
    LCD_WriteReg(0x0000,0x0001);
    delay_ms(50);   // delay 50 ms 

    LCD_Code = LCD_ReadReg(0x0000);  
    printf(" LCD ID:%x\n",LCD_Code); //打印LCD ID
    }
}

我的工作就是天天在玩
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2014-3-5
在线时间
67 小时
发表于 2014-5-30 18:30:28 | 显示全部楼层
而且这个ID只能打印出两位数字,要么93  要么41  汗
Hard work!
回复 支持 1 反对 0

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2012-6-20 01:28:15 | 显示全部楼层
PS

运行时,COM口很坑爹,会死,你按一下KEY_UP或RESET键(板子上的)会活起来.
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2012-6-20 01:29:27 | 显示全部楼层
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505
 LCD ID:b505


我的屏用COM口读出来是这个.
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-6-20 09:33:04 | 显示全部楼层
回复【2楼】chinafox:
---------------------------------
你用的什么串口调试助手?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2012-6-20 13:07:06 | 显示全部楼层
STC的
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2012-6-20 13:08:39 | 显示全部楼层
也用图标有两幢楼的
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-6-20 13:41:24 | 显示全部楼层
sscom应该不会出问题的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2012-6-20 21:43:46 | 显示全部楼层
都有,按RSET后OK
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

2

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2012-5-7
在线时间
8 小时
发表于 2012-6-22 13:50:10 | 显示全部楼层
楼主我的读出来是9328
耐心做事,好好做人。O(∩_∩)O!
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2012-6-22 15:08:53 | 显示全部楼层
拿起剪刀剪原子例程的相应初始化代码来用
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2012-6-26 13:15:52 | 显示全部楼层
回复【10楼】chinafox:
---------------------------------
楼主 为什么我的初始化完后,屏幕没有变花呀??ID都读出来对的耶
回复 支持 反对

使用道具 举报

31

主题

269

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2012-5-18
在线时间
6 小时
发表于 2012-11-16 21:13:36 | 显示全部楼层
回复【楼主位】chinafox:
---------------------------------
没有呀,楼主
RCC->APB2ENR|=1<<0;    //这个不写可以读出ID号,是对的 
   
JTAG_Set(SWD_ENABLE);  ////这个不写不能读出来,所以说要写,虽然不知为何,可能是开始要改变初始默认的IO口功能吧
谁来买我的火柴.....
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2012-12-20
在线时间
0 小时
发表于 2012-12-24 17:09:49 | 显示全部楼层
回复【12楼】古月:
--------------------------------
楼主,我的lcd是9341,但com接收的是 LCD ID:febe
开发板白屏,没有显示数据。另外DSO反复闪烁,BEEP不断呼叫。是怎么回事呢?
使用的是你的程序,LCD初始化是复制原子大哥9341的部分。其它没有改动。
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2012-12-20
在线时间
0 小时
发表于 2012-12-24 17:10:45 | 显示全部楼层
回复【楼主位】chinafox:
---------------------------------
楼主,我的lcd是9341,但com接收的是 LCD ID:febe 
开发板白屏,没有显示数据。另外DSO反复闪烁,BEEP不断呼叫。是怎么回事呢? 
使用的是你的程序,LCD初始化是复制原子大哥9341的部分。其它没有改动。
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2013-1-5 15:58:20 | 显示全部楼层
MM帮我买的大板子才到手,有空我看一下,是什么回事,这两周在搞Zigbee 和 SUB  。诂计春节的时候才能给大家共享下笔记了
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-7-25 13:19:49 | 显示全部楼层
讲的详细,学习了
回复 支持 反对

使用道具 举报

60

主题

225

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
483
金钱
483
注册时间
2013-7-27
在线时间
4 小时
发表于 2013-8-15 21:55:56 | 显示全部楼层
回复【楼主位】chinafox:
---------------------------------
你好:我想问一下,“第四”“第五”中的两个函数是依据时序图写的吗?还是?谢谢!
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
 楼主| 发表于 2013-8-18 22:54:05 | 显示全部楼层
是滴
回复 支持 反对

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-5-27
在线时间
0 小时
发表于 2013-8-21 14:52:00 | 显示全部楼层
唉  为嘛我的板子就是不显示呢  能看见程序跑过去了  但是就是不显示东西  还是花屏 什么颜色都有  我心慌了
回复 支持 反对

使用道具 举报

18

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2013-2-4
在线时间
214 小时
发表于 2013-11-23 22:58:24 | 显示全部楼层
LCD ID:4535


谢谢。。
回复 支持 反对

使用道具 举报

18

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2013-2-4
在线时间
214 小时
发表于 2013-11-24 15:39:59 | 显示全部楼层
RCC->APB2ENR|=1<<0;    //开启辅助时钟               <<=====我试过关掉这两行,不行,我现在都不明白关掉JTAG为什么不行,不是共用了两个B口吗,关掉不行吗??怪呀,望原子哥解释
JTAG_Set(SWD_ENABLE);  //开启SWD                       <<=====我试过关掉这两行,不行,我现在都不明白关掉JTAG为什么不行,不是共用了两个B口吗,关掉不行吗??怪呀,望原子哥解释


最近跟着楼主在学TFT..不知道这个问题有在珍惜想没?

是不是 在开启SWD时,B口两个被占用的就可以用了。


回复 支持 反对

使用道具 举报

18

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2013-2-4
在线时间
214 小时
发表于 2013-11-24 21:07:43 | 显示全部楼层
郁闷了一下午,直接考的 楼主的 lcd—init。。。我说 怎么效果那么不明显。。  改成库的版本了。。 谢谢  fox
回复 支持 反对

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1067
金钱
1067
注册时间
2012-1-7
在线时间
157 小时
发表于 2013-12-10 23:37:33 | 显示全部楼层
不错啊,哈哈哈
回复 支持 反对

使用道具 举报

38

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2014-3-5
在线时间
67 小时
发表于 2014-5-30 17:31:29 | 显示全部楼层
我的读回来ID是0
Hard work!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-5-1
在线时间
0 小时
发表于 2014-6-23 18:56:46 | 显示全部楼层
弱弱的问一句:正常IO写寄存器函数与写寄存器函数有什么区别啊?谢谢!
因为爱所以专注。
回复 支持 反对

使用道具 举报

33

主题

253

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-8-16
在线时间
0 小时
发表于 2014-6-23 19:24:45 | 显示全部楼层
不错,挺有意思!!支持一下!!
开源的世界,你可以做主!!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-5-1
在线时间
0 小时
发表于 2014-6-23 21:56:21 | 显示全部楼层
麻烦问一下,mini版本的也需要JTAG_Set(SWD_ENABLE)这个函数么。。。
因为爱所以专注。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 02:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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