|
在调试LCD屏时发现,如此定义数据端
#define LCD_LED_SET GPIO_SetBits(GPIOC,GPIO_Pin_10)
#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_LED_SET GPIOC->BSRR=1<<10
#define LCD_CS_SET GPIOC->BSRR=1<<9 //片选端口 PC9
#define LCD_RS_SET GPIOC->BSRR=1<<8 //数据/命令 PC8
#define LCD_WR_SET GPIOC->BSRR=1<<7 //写数据 PC7
#define LCD_RD_SET GPIOC->BSRR=1<<6 //读数据 PC6
刷屏速度提高一倍;
问题是:
1.第二种为什么会比第一种方式快一倍?难道是第二种直接操作寄存器的缘故?
2.在主函数里,我用了个一般的延时函数
void Delay_ms(u32 z) //延时1ms
{
u32 x,y;
for(x=z;x>0;x--)
for(y=7000;y>0;y--);
}
为什么用 快速刷屏 的方式会导致延时函数的延时时间缩短一半?
望原子大哥及大侠们指教。。。。
|