OpenEdv-开源电子网

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

求一篇用io接收数据的代码。。。我用的f103mini板子

[复制链接]

20

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2016-7-14
在线时间
49 小时
发表于 2016-10-31 13:49:44 | 显示全部楼层 |阅读模式
1金钱
就是,我有一个传感器,我该怎么用io口读取里面的实时数据啊

最佳答案

查看完整内容[请看2#楼]

先看下DS18B20的代码 DS18B20 就是单总线协议传输的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13102
金钱
13102
注册时间
2012-11-26
在线时间
3811 小时
发表于 2016-10-31 13:49:45 | 显示全部楼层
先看下DS18B20的代码   DS18B20  就是单总线协议传输的
回复

使用道具 举报

20

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2016-7-14
在线时间
49 小时
 楼主| 发表于 2016-10-31 15:08:02 | 显示全部楼层
jermy_z 发表于 2016-10-31 13:50
先看下DS18B20的代码   DS18B20  就是单总线协议传输的

我在百度找了好多类似单总线的代码,看的晕乎晕乎的,最后发现,例程里给了。。汗,我去学习一下,谢啦
回复

使用道具 举报

20

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2016-7-14
在线时间
49 小时
 楼主| 发表于 2016-11-1 10:53:59 | 显示全部楼层
jermy_z 发表于 2016-10-31 13:49
先看下DS18B20的代码   DS18B20  就是单总线协议传输的

大哥,我有一些地方不懂!最后的get temp函数里 :
    DS18B20_Write_Byte(0xcc);// skip rom
    DS18B20_Write_Byte(0xbe);// convert            
    TL=DS18B20_Read_Byte(); // LSB   
    TH=DS18B20_Read_Byte(); // MSB  
1.两个(0xcc,0xbe)具体可以干什么。
2.TL=这个函数的值,TH也等于这个函数的值,虽然注释写了LSB和MSB。但我怎么看的不对劲啊
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-11-1 11:14:57 | 显示全部楼层
我是个小白菜 发表于 2016-11-1 10:53
大哥,我有一些地方不懂!最后的get temp函数里 :
    DS18B20_Write_Byte(0xcc);// skip rom
    DS1 ...

好久没用单总线了,凭印象大致给你说一下,关于0xcc和0xbe,后面已经有注释了,分别是skip rom和convert,具体为什么要skip rom和convert,楼主可以去看具体单总线原件的手册,对于这些命令,肯定会详细说明的,为什么要skip rom我忘记了,但是convert接上下面的读操作,肯定是开始转换的意思。
至于为啥TL和TH依次等于那个函数的返回值,我猜是因为单总线是串行的,传感器一次转换的数据估计是16位的,bit是一位一位读出来的,所以,先用TL收到低八位的数据,然后TH收到高八位的数据,得到完整的数据。
只是猜测,毕竟好久没碰过了,楼主做个参考,估计猜的八九不离十。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-11-1 11:20:34 | 显示全部楼层
我是个小白菜 发表于 2016-11-1 10:53
大哥,我有一些地方不懂!最后的get temp函数里 :
    DS18B20_Write_Byte(0xcc);// skip rom
    DS1 ...

看了你的发帖,感觉就像自己初学的时候,这些协议,搞懂一个,其实都差不多,具体怎么写数据,读数据,人家都已经告诉你了,是在不行借助示波器看时序,基本没有障碍,还是尽快夯实自己的C语言基础,或者电路,这两样才是真本事。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

20

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2016-7-14
在线时间
49 小时
 楼主| 发表于 2016-11-1 14:01:09 | 显示全部楼层
东北小辉辉 发表于 2016-11-1 11:20
看了你的发帖,感觉就像自己初学的时候,这些协议,搞懂一个,其实都差不多,具体怎么写数据,读数据,人 ...

恩恩,万分感谢,谨记了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 19:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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