void busy_check()
{
u8 bc = 0, times = 0;
delay_10ns( Tsp1 );
do
{
RS = 0;
RW = 1;
delay_ms( 1 );
EP = 1;
bc = PORT_DATA->IDR & 0x80;
delay_10ns( Tpw );
EP = 0;
delay_10ns( Tpw );
delay_ms( 1 );
times ++;
}while( bc && (times <= 10) );
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
不好意思...好长一段时间去了搞别的,没上论坛...
我用推完输出,直接连接io。
不成功可能是时序问题。
我做时序有个习惯,就是一开始都用delay_1ms( 1 )来作为所有时间间隔,等能运行再看手册把时间调小。
大佬。我参考了你的读忙,经过主函数的多次验证(在主函数中用不忙作为条件点亮一个LED灯),发现确实是第一次读忙会死循环。但是我还算没用驱动1602成功。仍然是一片黑方格。
一周热门 更多>