电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【NUCLEO-F412ZG试用体验】+DS3231,DS18B20,LCD1602用户自定义外 ...
【NUCLEO-F412ZG试用体验】+DS3231,DS18B20,LCD1602用户自定义外 ...
用户
donatello
LV6工程师
| 2017-02-09 12:58:17
浏览量 1191
回复:1
发表新帖
学习单片机,总免不了要与各种各样的外设器件进行通信,与外设通
信则必须通过信号线,信号线接口按照传输数据的方式分为串行接口和并
行接口,其中常用的串行接口有IIC,SPI,U(S)ART和单总线。
今天用到的DS18B20是DALLAS公司研发的单总线的温度传感器,主机
发送温度检测命令后的规定延时后,温度数据以二进制BCD码传回到主机
,数据线只有一根。由于是单总线器件,因此在写程序时必须严格控制延
时,如果STM32像51单片机那样使用粗延时函数来与DS18B20通信是绝对会
出错的,因此必须使用基于SYSTICK的精确延时函数。在宏定义中可以配
置相关引脚,方便移植。
而今天用到的DS3231同样是DALLAS公司研发的就属于IIC总线的日历
芯片,有一根数据线和一根时钟线与主机通信。鉴于STM32的硬件IIC函数
库使用非常麻烦,因此采用IO模拟的IIC接口来与DS3231通信,事实证明
并没有多大影响,通信正常。在宏定义中可以配置相关引脚,方便移植。
今天用到的LCD1602原本是并行数据接口器件,一共需要占用10个GPIO
(RS数据命令选择,EN使能,8个数据线),可是我外接了一个74HC595给
它,8个数据线转化成了RCLK,SER,SRCLK三个命令线,该器件就变成了
模拟SPI接口器件,只占用5个GPIO。在宏定义中可以配置相关引脚,方便
移植。
老规矩,上传一份可以直接调用的头文件。
学习单片机,总免不了要与各种各样的外设器件进行通信,与外设通
信则必须通过信号线,信号线接口按照传输数据的方式分为串行接口和并
行接口,其中常用的串行接口有IIC,SPI,U(S)ART和单总线。
今天用到的DS18B20是DALLAS公司研发的单总线的温度传感器,主机
发送温度检测命令后的规定延时后,温度数据以二进制BCD码传回到主机
,数据线只有一根。由于是单总线器件,因此在写程序时必须严格控制延
时,如果STM32像51单片机那样使用粗延时函数来与DS18B20通信是绝对会
出错的,因此必须使用基于SYSTICK的精确延时函数。在宏定义中可以配
置相关引脚,方便移植。
而今天用到的DS3231同样是DALLAS公司研发的就属于IIC总线的日历
芯片,有一根数据线和一根时钟线与主机通信。鉴于STM32的硬件IIC函数
库使用非常麻烦,因此采用IO模拟的IIC接口来与DS3231通信,事实证明
并没有多大影响,通信正常。在宏定义中可以配置相关引脚,方便移植。
今天用到的LCD1602原本是并行数据接口器件,一共需要占用10个GPIO
(RS数据命令选择,EN使能,8个数据线),可是我外接了一个74HC595给
它,8个数据线转化成了RCLK,SER,SRCLK三个命令线,该器件就变成了
模拟SPI接口器件,只占用5个GPIO。在宏定义中可以配置相关引脚,方便
移植。
老规矩,上传一份可以直接调用的头文件。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
1
heaton426
2017-02-10
赞一个,狗头
0
回复
举报
发布
×
举报
举报人:
被举报人:donatello
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子