用ARM9 2440的GPIO口实现与温湿度传感器(AM2302)的单总线通信! WINCE 分享一下心得
2012-02-27 09:48
218 查看
最近做个东西, 需要用到温湿度.
在淘宝找了一圈, 只有AM系列的, AM230x 是单总线, AM231X是IIC总线.
由于我的ARM9的IIC还要做别的用, 于是买了单总线的, 尺寸小一些.
第一次做单总线的东西, 都还不知道是个啥意思, 问了一下奥康客服, 说就是用GPIO.
于是采购了1个.
在ARM口上找个电源, 给AM2302接好电源(3.7V的锂电).
然后参考AM2302的demo 和 手册. 还是中文产品好啊, 看得懂.
demo有2个, 一个AVR, 一个51单片机.
结合说明书, 熟读2个代码后, 开始动手
平台: WINCE5 ARM9 2440A, VC2005,
建立一个类, 打开GPIO驱动
然后将AVR的代码翻译过来
总是不行.
后来看51的代码, 还明了一下, 至少和VC的风格感觉接近一些,\
于是根据51的代码写了一份.
经过奋战1天(-_-~!), 终于搞定, 但是还是有些不稳定.
心得:
1. 找到WINCE的 us延时函数, google一下.
2. 将51里面的5个宏(输出 输入 高电平 低电平 读取) 翻译成你平台的代码, 对于我来说就是DriverControlIO, 读取代码用了一个函数.
3. 然后用你的宏替换51定义的5个宏.
未解决的问题:
读取8个字节的函数(ReadSensor 和 COM), 里面的延时原本需要30us, 但是我只延时1~5us, 才可以正常读取到数据. 不过有些不稳定, WINCE的延时函数我验证了, 还算准确.
原因: 可能出在读取电平时, 需要调用驱动代码, 耗用了一部分时间, 所以有时候同步不上.
解决办法: 我已近将线程设置为100的优先级; 所以这个问题还不知道如何解决, 将代码做成驱动, 也许延时会小很多.
在淘宝找了一圈, 只有AM系列的, AM230x 是单总线, AM231X是IIC总线.
由于我的ARM9的IIC还要做别的用, 于是买了单总线的, 尺寸小一些.
第一次做单总线的东西, 都还不知道是个啥意思, 问了一下奥康客服, 说就是用GPIO.
于是采购了1个.
在ARM口上找个电源, 给AM2302接好电源(3.7V的锂电).
然后参考AM2302的demo 和 手册. 还是中文产品好啊, 看得懂.
demo有2个, 一个AVR, 一个51单片机.
结合说明书, 熟读2个代码后, 开始动手
平台: WINCE5 ARM9 2440A, VC2005,
建立一个类, 打开GPIO驱动
然后将AVR的代码翻译过来
总是不行.
后来看51的代码, 还明了一下, 至少和VC的风格感觉接近一些,\
于是根据51的代码写了一份.
经过奋战1天(-_-~!), 终于搞定, 但是还是有些不稳定.
心得:
1. 找到WINCE的 us延时函数, google一下.
2. 将51里面的5个宏(输出 输入 高电平 低电平 读取) 翻译成你平台的代码, 对于我来说就是DriverControlIO, 读取代码用了一个函数.
3. 然后用你的宏替换51定义的5个宏.
未解决的问题:
读取8个字节的函数(ReadSensor 和 COM), 里面的延时原本需要30us, 但是我只延时1~5us, 才可以正常读取到数据. 不过有些不稳定, WINCE的延时函数我验证了, 还算准确.
原因: 可能出在读取电平时, 需要调用驱动代码, 耗用了一部分时间, 所以有时候同步不上.
解决办法: 我已近将线程设置为100的优先级; 所以这个问题还不知道如何解决, 将代码做成驱动, 也许延时会小很多.
相关文章推荐
- 分享一下三个写的比较好的tensorflow多GPU模型,实现数据并行/模型并行
- WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
- 07 AVR单片机ATmega8工业总线项目的通信处理以及实现
- wince驱动入门必看-WinCE流设备驱动简介及GPIO驱动的实现
- 使用ShareSDK实现分享功能,微信分享 提示“分享操作正在后台运行” 然后闪了一下屏幕
- 嵌入式 ARM9 S3C2451裸机 GPIO封装原理和代码实现(详解)
- 这几个礼拜在做sns上的flash游戏前台,还算有点心得,过两周拿出来分享一下,嘿嘿。
- 2440 wince的24bpp(24位)颜色深度实现
- 【WinCE】流设备驱动简介及GPIO驱动的实现
- TQ2440 学习笔记—— 13、GPIO 接口【实验:用汇编语言实现】
- 最近实现的一个分离文章内容功能,挺有意思,分享一下
- 这几天学的关于用SSH实现分页的东西在这里和大家分享一下,技术不足之处,望多多评论
- 关于socket用winform实现简单通信 大牛可绕道 初学者可以看看 我做的时候把客户端窗口隐藏了 大家可以自己改一下
- android 中“分享一下”的实现方法
- 2440 WinCE操作GPIO
- 给70年代生人分享一下最近的学习心得
- [置顶] ARM9与FPGA并口通信的实现
- AJAX学习心得分享----(二)JQuery实现AJAX
- 如何在 Windows Mobile (WinCE 5.0) 中用Vc++编程查找并连接周围的蓝牙(Bluetooth)设备并实现数据通信
- WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信