OpenEdv-开源电子网

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

【1602检测忙】貌似很多人的检测忙函数不成功,我自己加了个次数控制就成功了,有同学知道根本原因?

[复制链接]

3

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-8-11
在线时间
0 小时
发表于 2014-6-22 11:06:30 | 显示全部楼层 |阅读模式
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) );
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-6-22 13:43:39 | 显示全部楼层
好久没用这个了,不过你这方法可以啊,多检测几次就是了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-8-11
在线时间
0 小时
 楼主| 发表于 2014-6-22 16:16:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
啊哈哈,想不到第一次发帖原子哥就回复了。
我测试后估计是第一次忙检测会不成功,DB7一直返回1而陷入死循环。第二次忙检测就不会了。
希望对后面的同学有帮助。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-4-5
在线时间
0 小时
发表于 2014-9-2 11:02:02 | 显示全部楼层
你好  我想问一下你是用min版 做的吗??到底有没有数据端口和控制端口上拉10k的电阻到5v电压,然后用开楼输出呢??还是直接连接端口的,,,我弄了好久了  还是不成功不知道为什么,求请教
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-4-5
在线时间
0 小时
发表于 2014-9-2 11:04:45 | 显示全部楼层
你好  我想问一下你是用min版 做的吗??到底有没有数据端口和控制端口上拉10k的电阻到5v电压,然后用开楼输出呢??还是直接连接端口的,,,我弄了好久了  还是不成功不知道为什么,求请教
回复 支持 反对

使用道具 举报

3

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-8-11
在线时间
0 小时
 楼主| 发表于 2014-9-26 08:28:51 | 显示全部楼层
回复【4楼】张zhang:
---------------------------------
不好意思...好长一段时间去了搞别的,没上论坛...
我用推完输出,直接连接io。
不成功可能是时序问题。
我做时序有个习惯,就是一开始都用delay_1ms( 1 )来作为所有时间间隔,等能运行再看手册把时间调小。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-5-3
在线时间
6 小时
发表于 2019-5-7 15:35:20 | 显示全部楼层
东阳马苏 发表于 2014-6-22 16:16
回复【2楼】正点原子:
---------------------------------
啊哈哈,想不到第一次发帖原子哥就回复了。
我测 ...

大佬。我参考了你的读忙,经过主函数的多次验证(在主函数中用不忙作为条件点亮一个LED灯),发现确实是第一次读忙会死循环。但是我还算没用驱动1602成功。仍然是一片黑方格。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-11-3
在线时间
2 小时
发表于 2019-12-21 01:18:42 | 显示全部楼层
好久没用这个了,不过你这方法可以啊,多
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-21 08:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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