Numicro51驱动sht11
最近在学习,新唐的M051。初学就与困难。把51上面的sht11的驱动移植到M051上,,结果跑不起来。。测量不到数据。。。我IO设置的是准双向的。主频是12M的。。。不知道是我IO口模式设置错了,,还是怎么回事。。。就是读不出来、。。。 51跟051的时钟不一样,所以要调一下 我也增加了延时,,还是不行。。。。不知道IO的反转速度,,我看了一篇关于M051的说“反转速度7个机器周期”。。。我把主频12分频,之后用51的驱动,还是不行。。。实在是不解呀~!现在也是盲目了。。。心里总有阴影~!想着这个事,,出门都不痛快~! 我使用定时器产生1us的延时,还测试了IO模式,应该都木问题的。。结果却,。。。。。。。 sting_yang 发表于 2012-11-17 16:42 static/image/common/back.gif51跟051的时钟不一样,所以要调一下
您好~!我上午又测试了一下,,,我要读温度,发送0x03之后,,,数据线一直为低,第九个时钟之后数据线还是不会释放~! zhengwending111 发表于 2012-11-18 12:11 static/image/common/back.gif
您好~!我上午又测试了一下,,,我要读温度,发送0x03之后,,,数据线一直为低,第九个时钟之后数据线 ...
方便给程序,看看问题在哪里? 没问题。~! sting_yang 发表于 2012-11-19 00:59 static/image/common/back.gif
方便给程序,看看问题在哪里?
我用示波器测量时钟,时钟刚开始是方波,,,之后高低电平越来越尖~! sting_yang 发表于 2012-11-19 00:59 static/image/common/back.gif
方便给程序,看看问题在哪里?
您收到了吗? 怎么就一位大侠肯帮忙呢~!{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:} zhengwending111 发表于 2012-11-19 19:13 static/image/common/back.gif
您收到了吗?
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 sting_yang 发表于 2012-11-20 11:20 static/image/common/back.gif
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 ...
你看看我的这个程序。。感觉还是不行。。我修改过。。设置为out,跟input来的。。我想加您的qq。。我的是277086579 sting_yang 发表于 2012-11-20 11:20 static/image/common/back.gif
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 ...
((unsigned char) (P3_PIN&0x10))>>4,我这样操作,结果现象一样~!没什么大的改观~! zhengwending111 发表于 2012-11-20 11:51 static/image/common/back.gif
((unsigned char) (P3_PIN&0x10))>>4,我这样操作,结果现象一样~!没什么大的改观~! ...
1.时钟设定,好像错了,请参考新塘的范例
2.IO复位后就是准双向 请将IO设定去掉
3.((unsigned char) (P3_PIN&0x10))>>4 只用在读SHT11资料 写还是用Sht11_Data sting_yang 发表于 2012-11-20 12:27 static/image/common/back.gif
1.时钟设定,好像错了,请参考新塘的范例
2.IO复位后就是准双向 请将IO设定去掉
3.((unsigned char) (P3_ ...
我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。 zhengwending111 发表于 2012-11-20 12:33 static/image/common/back.gif
我只修改了,读操作是“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
.
.
.
.
.
这段是从新塘范例截取下来的 跟你的不一样 sting_yang 发表于 2012-11-20 12:45 static/image/common/back.gif
main(void)
{
Un_Lock_Reg();
哦。。这个没关系的。。。意思都是一样的。。。我刚才把他按例程修改了,,读出的数据还是不变~!现象一样~! zhengwending111 发表于 2012-11-20 12:33 static/image/common/back.gif
我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。 ...
应答也是读操作。有改吗? sting_yang 发表于 2012-11-20 13:22 static/image/common/back.gif
应答也是读操作。有改吗?
有。。。读操作我修改了。。。写操作我还是用的DOUT 经过技术支持,目前是解决了 ,,好像是算法有问题。。。算法就是常见的51上面的程序移植的~!
页:
[1]