OpenEdv-开源电子网

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

正点原子开发板LCD程序问题请教!!!

[复制链接]

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2012-7-9
在线时间
0 小时
发表于 2013-3-4 00:17:32 | 显示全部楼层 |阅读模式

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

 RCC->APB2ENR|=1<<0;    //开启辅助时钟
 JTAG_Set(SWD_ENABLE);  //开启SWD
           
 //PORTC6~10复用推挽输出
以下代码省略......

请教一下  JTAG_Set(SWD_ENABLE);  //开启SWD  这句话具体的作用是什么 我感觉没关系啊  怎么屏蔽掉程序就不对了???


还有显示字符的程序
void LCD_ShowString(u16 x,u16 y,const u8 *p)
{        
    while(*p!='\0')
    {      
        if(x>MAX_CHAR_POSX){x=0;y+=16;}
        if(y>MAX_CHAR_POSY){y=x=0;LCD_Clear(WHITE);}
        LCD_ShowChar(x,y,*p,16,1);
        x+=8;
        p++;
    } 
}

其中    if(y>MAX_CHAR_POSY){y=x=0;LCD_Clear(WHITE);}  的LCD_Clear(WHITE); 有什么特别的作用吗?? 我把这句话屏蔽掉 效果蛮好的  如果没屏蔽掉的话y>312的话 屏幕背景总是白色的 就没办法显示其他背景颜色了???

求大虾帮忙解决这两个问题啊 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6769

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13173
金钱
13173
注册时间
2012-11-26
在线时间
3818 小时
发表于 2013-3-4 07:43:45 | 显示全部楼层
 if(y>MAX_CHAR_POSY){y=x=0;LCD_Clear(WHITE);}

那得看你的MAX_CHAR_POSY 定义的是多少

只要大于这个数   就全屏清成白色





 
学无止境
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-4 09:58:04 | 显示全部楼层
回复【楼主位】lzy_tjau:
---------------------------------
1,因为液晶有几个IO口和JTAG共用了,所以必须关闭JTAG.
2, if(y>MAX_CHAR_POSY){y=x=0;LCD_Clear(WHITE);} 作用就是不让显示的字符超过一屏,否则清屏!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2012-7-9
在线时间
0 小时
 楼主| 发表于 2013-3-4 22:41:07 | 显示全部楼层
第二个问题明白了.  第一个问题还有个疑问.想要调试的话必须通过程序里面设置JTAG吗 我直接在debug里面设置SWD调试方式也能调试吧?
还有就是我不设置.JTAG_Set函数的话是不是默认关闭调试了.? RCC->APB2ENR|=1<<0;    //开启辅助时钟
JTAG_Set(SWD_ENABLE);  //开启SWD  我把这两句话屏蔽掉的话就没有打开复用功能了 应该就不影响LCD读写了.  但是下载进去也是不行 咱也不需要调试啊.直接看结果也不对..
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2012-7-9
在线时间
0 小时
 楼主| 发表于 2013-3-4 22:41:54 | 显示全部楼层
谢谢原子哥  谢谢jermy_z 兄
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-4 23:07:23 | 显示全部楼层
回复【4楼】lzy_tjau:
---------------------------------
JTAG_Set(SWD_ENABLE); 
这句话的意思是开启SWD,关闭JTAG.
注意JTAG和SWD不一样!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2012-7-9
在线时间
0 小时
 楼主| 发表于 2013-3-4 23:40:54 | 显示全部楼层
我的意思是  如果不写JTAG_Set();  这个函数 JTAG 和 SWD是什么状态?  对LCD的读写有什么影响?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-4 23:51:59 | 显示全部楼层
默认是JTAG模式,占用了LCD的几个IO,直接导致LCD不能显示.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2012-7-9
在线时间
0 小时
 楼主| 发表于 2013-3-5 00:01:31 | 显示全部楼层
嗯  明白了 谢谢原子哥
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 19:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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