文件名称:驱动示例-基于himawari-8卫星的沙尘监测
文件大小:7.57MB
文件格式:PDF
更新时间:2024-06-29 20:21:04
嵌入式linux 周立功
4.4 驱动示例
该示例需要为 EasyARM-i.MX283A 开发套件的 URX1 和 UTX1 实现 GPIO 功能。URX1
连接到处理器的 AUART1_RX 引脚,其 GPIO 为 GPIO3_4;UTX1 连接到处理器的
AUART1_TX 引脚,其 GPIO 为 GPIO3_5。
操作寄存器 1.
参考《MCIMX28M.pdf》文档,设置 AUART1_RX 引脚和 AUART1_TX 引脚功能的寄
存器为 HW_PINCTRL_MUXSEL6,其相应的设置位如图 4.1 所示。
图 4.1 AUART1_RX/TX 引脚的功能设置寄存器位
i.MX28 系列处理器的任何寄存器都有相应的置位寄存器和复位寄存器。若某寄存器名
为 REGISTER,那么其置位寄存器则名为 REGISTER_SET;其复位寄存器则名为
REGISTER_CLR。这些寄存器的分工为:
在 REGISTER 寄存器可以看到所有位的值;
当需要在 REGISTER 寄存器的指定位设置为 1 时,则需要在 REGISTER_SET 寄存
器的相应位设置为 1 ;
当需要在 REGISTER 寄存器的指定位设置为 0 时,则需要在 REGISTER_CLR 寄存
器的相应位设置为 1;
同样,当需要把 HW_PINCTRL_MUXSEL6 寄存器的指定位设置为 1 时,则需要在 HW_
PINCTRL_MUXSEL6_SET 寄存器的相应位设置为 1;当需要在 HW_PINCTRL_MUXSEL6
寄存器的指定位设置为 0 时,则需要在 HW_PINCTRL_MUXSEL6_CLR 寄存器的相应位置
位设置为 1。
对于任何一个 GPIO 都有输入/输出方向控制寄存器(HW_PINCTRL_DOEx)、电平输出
控制寄存器(HW_PINCTRL_DOUTx)和输入电平状态寄存器(HW_PINCTRL_DIN3x)。
以 GPIOm_n 为例,该 GPIO 是属第 m 组 GPIO,所以其输入/输出方向寄存器为
HW_PINCTRL_DOEm;其输出电平控制寄存器为 HW_PINCTRL_DOUTm;其输入电平读
取寄存器为 HW_PINCTRL_DINm。GPIOm_n 在各寄存器的控制位都在第 n 位。
由于 GPIO3_4 和 GPIO3_5 都属第 3 组 GPIO,所以其输入/输出方向控制寄存器为
HW_PINCTRL_DOE3;其输出电平控制寄存器为 HW_PINCTRL_DOUT3;其输入电平读取
寄存器为 HW_PINCTRL_DIN3。
内核对 GPIO 寄存器的定义 2.
在内核源码的