搜索
bottom↓
回复: 19

Numicro51驱动sht11

[复制链接]

出0入0汤圆

发表于 2012-11-17 13:25:58 | 显示全部楼层 |阅读模式
最近在学习,新唐的M051。初学就与困难。把51上面的sht11的驱动移植到M051上,,结果跑不起来。。测量不到数据。。。我IO设置的是准双向的。主频是12M的。。。不知道是我IO口模式设置错了,,还是怎么回事。。。就是读不出来、。。。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-11-17 16:42:59 | 显示全部楼层
51跟051的时钟不一样,所以要调一下

出0入0汤圆

 楼主| 发表于 2012-11-18 09:07:12 | 显示全部楼层
我也增加了延时,,还是不行。。。。不知道IO的反转速度,,我看了一篇关于M051的说“反转速度7个机器周期”。。。我把主频12分频,之后用51的驱动,还是不行。。。实在是不解呀~!现在也是盲目了。。。心里总有阴影~!想着这个事,,出门都不痛快~!

出0入0汤圆

 楼主| 发表于 2012-11-18 09:21:20 | 显示全部楼层
我使用定时器产生1us的延时,还测试了IO模式,应该都木问题的。。结果却,。。。。。。。

出0入0汤圆

 楼主| 发表于 2012-11-18 12:11:18 | 显示全部楼层
sting_yang 发表于 2012-11-17 16:42
51跟051的时钟不一样,所以要调一下

您好~!我上午又测试了一下,,,我要读温度,发送0x03之后,,,数据线一直为低,第九个时钟之后数据线还是不会释放~!

出0入0汤圆

发表于 2012-11-19 00:59:02 | 显示全部楼层
zhengwending111 发表于 2012-11-18 12:11
您好~!我上午又测试了一下,,,我要读温度,发送0x03之后,,,数据线一直为低,第九个时钟之后数据线 ...

方便给程序,看看问题在哪里?

出0入0汤圆

 楼主| 发表于 2012-11-19 12:53:10 | 显示全部楼层
没问题。~!

出0入0汤圆

 楼主| 发表于 2012-11-19 12:57:16 | 显示全部楼层
sting_yang 发表于 2012-11-19 00:59
方便给程序,看看问题在哪里?

我用示波器测量时钟,时钟刚开始是方波,,,之后高低电平越来越尖~!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-11-19 19:13:43 | 显示全部楼层
sting_yang 发表于 2012-11-19 00:59
方便给程序,看看问题在哪里?

您收到了吗?

出0入0汤圆

 楼主| 发表于 2012-11-19 21:08:18 | 显示全部楼层
怎么就一位大侠肯帮忙呢~!

出0入0汤圆

发表于 2012-11-20 11:20:27 | 显示全部楼层
zhengwending111 发表于 2012-11-19 19:13
您收到了吗?

m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试

出0入0汤圆

 楼主| 发表于 2012-11-20 11:38:28 | 显示全部楼层
sting_yang 发表于 2012-11-20 11:20
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 ...

你看看我的这个程序。。感觉还是不行。。我修改过。。设置为out,跟input来的。。我想加您的qq。。我的是277086579

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-11-20 11:51:34 | 显示全部楼层
sting_yang 发表于 2012-11-20 11:20
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 ...

((unsigned char) (P3_PIN&0x10))>>4,我这样操作,结果现象一样~!没什么大的改观~!

出0入0汤圆

发表于 2012-11-20 12:27:45 | 显示全部楼层
zhengwending111 发表于 2012-11-20 11:51
((unsigned char) (P3_PIN&0x10))>>4,我这样操作,结果现象一样~!没什么大的改观~! ...

1.时钟设定,好像错了,请参考新塘的范例
2.IO复位后就是准双向 请将IO设定去掉
3.((unsigned char) (P3_PIN&0x10))>>4 只用在读SHT11资料 写还是用Sht11_Data

出0入0汤圆

 楼主| 发表于 2012-11-20 12:33:01 | 显示全部楼层
sting_yang 发表于 2012-11-20 12:27
1.时钟设定,好像错了,请参考新塘的范例
2.IO复位后就是准双向 请将IO设定去掉
3.((unsigned char) (P3_ ...

我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。

出0入0汤圆

发表于 2012-11-20 12:45:55 | 显示全部楼层
zhengwending111 发表于 2012-11-20 12:33
我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。 ...

main(void)
{
    Un_Lock_Reg();
        PWRCON |= XTL12M_EN;
        while((CLKSTATUS & XTL12M_STB) == 0);                 //Wait until 12M clock is stable.       
       
        CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M;        //Set external crystal as the system clock
    .
    .
    .
    .
    .
这段是从新塘范例截取下来的 跟你的不一样

出0入0汤圆

 楼主| 发表于 2012-11-20 13:06:31 | 显示全部楼层
sting_yang 发表于 2012-11-20 12:45
main(void)
{
    Un_Lock_Reg();

哦。。这个没关系的。。。意思都是一样的。。。我刚才把他按例程修改了,,读出的数据还是不变~!现象一样~!

出0入0汤圆

发表于 2012-11-20 13:22:38 | 显示全部楼层
zhengwending111 发表于 2012-11-20 12:33
我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。 ...

应答也是读操作。有改吗?

出0入0汤圆

 楼主| 发表于 2012-11-20 14:00:55 | 显示全部楼层
sting_yang 发表于 2012-11-20 13:22
应答也是读操作。有改吗?

有。。。读操作我修改了。。。写操作我还是用的DOUT

出0入0汤圆

 楼主| 发表于 2012-11-23 16:46:09 | 显示全部楼层
经过技术支持,目前是解决了 ,,好像是算法有问题。。。算法就是常见的51上面的程序移植的~!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 20:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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