目录
Renesas R7FA8D1BH (Cortex®-M85) 控制DS18B20和ADC,实现两个页面的跳转功能
概述
本文主要介绍Renesas R7FA8D1BH (Cortex®-M85)设计一个综合的应用案例:应用R7FA8D1BH的IO实现单总线协议,实现驱动ds18b20的功能,其主要完成读取温度值,并将该值格式化显示在OLED屏幕上。还通过串口终端将温度数据发送至串口终端上。
1 软硬件
1.1 软硬件环境信息
软硬件信息 | 版本信息 |
---|---|
Renesas MCU | R7FA8D1BH |
Keil | MDK ARM 5.38 |
FSP 版本 | 5.3.0 |
调试工具:N32G45XVL-STB | DAP-LINK |
1.2 开发板信息
笔者选择使用野火耀阳开发板_瑞萨RA8,该板块的主控MCU为R7FA8D1BHECBD,7FA8D1BHECBD的内核为ARM Contex-M85。
1.3 调试器信息
对于R7FA8D1BHECBD芯片,其使用的内核为Cortex®-M85 Core, ST-LINK-V2或者J-LINK-V9不支持下载和调试功能。笔者经过多次尝试,发现N32G45XVL-STB板卡上自带的DAP-LINK可以下载和调试R7FA8D1BHECBD。
下图为N32G45XVL-STB开发板实物图:
2 FSP和KEIL配置
2.1 硬件接口电路
耀阳开发板_瑞萨RA8上已经设计了DS18B20的接口电路,其使用P809接口作为DS18B20的DQ控制信号。
2.2 FSB配置DS18B20的IO
配置P809为普通的IO接口,然后在代码中动态配置该IO的输出或者输出状态
2.3 生成Keil工程文件
完成FSP的参数配置之后,就可以Generate Project。打开项目文件,其架构如下:
创建ds18b20.c文件,实现驱动代码
3 DS18B20驱动代码
3.1 DS18B20介绍
笔者在之前的文章中,已经详细分析过DS18B20的时序以及实现逻辑,这里不在做介绍。
DS18B20应用笔记_ds18b20读取数据的波形-CSDN博客
3.2 DS18B20驱动实现
3.2.1 IO状态定义
代码第14行:定义us步长延时函数
代码第15行:定义ms步长延时函数
代码第18行:定义DS18B20的IO PIN
代码第21行:输入端口配置
代码第22行:输出端口配置
代码第24行:设置IO低电平
代码第25行:设置IO高电平
3.2.2 读IO状态函数
代码第47行:读取输入模式下IO的状态
3.2.3 其他函数
函数:ds18b20Init, 检测DS18B20是否在线
函数:ds18b20BlockModeProcess。 读取DS18B20的数值</