初级会员

- 积分
- 81
- 金钱
- 81
- 注册时间
- 2013-3-3
- 在线时间
- 10 小时
|
发表于 2013-3-3 19:54:58
|
显示全部楼层
回复【6楼】正点原子:
先看你的程序:
////////////////////////////////////////////////////////////////////
//-----------------LCD端口定义----------------
#define LCD_LED  Cout(10) //LCD背光   C10
//如果使用快速IO,则定义下句,如果不使用,则去掉即可!
//使用快速IO,刷屏速率可以达到28帧每秒!
//普通IO,只能14帧每秒!
#if LCD_FAST_IO==1 //快速IO
//操作频繁,为了提高速度,建议直接寄存器操作
#define LCD_CS_SET GPIOC->BSRR=1<<9 //片选端口   C9
#define LCD_RS_SET GPIOC->BSRR=1<<8 //数据/命令   C8
#define LCD_WR_SET GPIOC->BSRR=1<<7 //写数据   C7
#define LCD_RD_SET GPIOC->BSRR=1<<6 //读数据   C6
#define LCD_CS_CLR GPIOC->BRR=1<<9 //片选端口   C9
#define LCD_RS_CLR GPIOC->BRR=1<<8 //数据/命令   C8
#define LCD_WR_CLR GPIOC->BRR=1<<7 //写数据   C7
#define LCD_RD_CLR GPIOC->BRR=1<<6 //读数据   C6
/*
#define LCD_CS_SET GPIO_SetBits(GPIOC,GPIO_Pin_9) //片选端口 PC9
#define LCD_RS_SET GPIO_SetBits(GPIOC,GPIO_Pin_8) //数据/命令 PC8
#define LCD_WR_SET GPIO_SetBits(GPIOC,GPIO_Pin_7) //写数据 PC7
#define LCD_RD_SET GPIO_SetBits(GPIOC,GPIO_Pin_6) //读数据 PC6
#define LCD_CS_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_9) //片选端口 PC9
#define LCD_RS_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_8) //数据/命令 PC8
#define LCD_WR_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_7) //写数据 PC7
#define LCD_RD_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_6) //读数据 PC6
*/
#else //慢速IO
#define LCD_CS PCout(9) //片选端口 PC9
#define LCD_RS PCout(8) //数据/命令 PC8
#define LCD_WR PCout(7) //写数据 PC7
#define LCD_RD PCout(6) //读数据 PC6
#endif
//#define PCout(n) BIT_ADDR(GPIOC_ODR_Addr,n) //输出
//#define PCin(n) BIT_ADDR(GPIOC_IDR_Addr,n) //输入
1.都是宏定义,何来快慢之说?
2.你说不用BSRR/BRR ,但是你程序里却用(快速),自相矛盾?
3.有没有验证过?
请刘老师解释一下,非常感谢! |
|