RS485驱动分析

嵌入式系统上一般使用串口转485。

485驱动=串口驱动+GPIO的字符驱动,串口驱动一般都用系统提供的,不需要自己写,需要自己写的只有GPIO字符驱动,并在应用程序中调用GPIO字符驱动及串口驱动。

GPIO驱动

驱动结构定义

RS485驱动分析_第1张图片

定义操作函数

定义一个设备控制结构,控制结构中定义对GPIO的操作函数

RS485驱动分析_第2张图片

在probe函数中注册485设备:

RS485驱动分析_第3张图片

申请控制管脚

gpio_request 函数用于申请一个 GPIO 管脚,在使用一个 GPIO 之前一定要使用 gpio_request 进行申请

函数原型如下:

int gpio_request(unsigned gpio, const char *label)

函数参数和返回值含义如下:

gpio:要申请的 gpio 标号,使用 of_get_named_gpio 函数从设备树获取指定 GPIO 属性信息,此函数会返回这个 GPIO 的标号。

label:给 gpio 设置个名字。

返回值:0,申请成功;其他值,申请失败。

代码中申请了GPIO 7用来控制485芯片。

定义操作控制管脚函数

max485_ctl_ioctl函数用来操控GPIO管脚。

RS485驱动分析_第4张图片

定义打开设备函数

RS485驱动分析_第5张图片

  应用程序调用

RS485驱动分析_第6张图片

发送和接收数据前操作控制管脚:

RS485驱动分析_第7张图片 

RS485驱动分析_第8张图片 

设备驱动开发实验教程(12)_RS485总线驱动_rs485驱动_santirenpc的博客-CSDN博客

你可能感兴趣的:(单片机,stm32,嵌入式硬件,linux)