当前位置: 首页 > news >正文 公交建设公司官网免费下载优化大师 news 2025/10/21 11:54:47 公交建设公司官网,免费下载优化大师,wordpress自动适应手机,网站索引查询嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作 第三章 硬件知识_LED 原理图3.1 先来讲讲怎么看原理图 第四章 普适的 GPIO 引脚操作方法4.1 GPIO 模块一般结构4.2 GPIO 寄存器操作4.3 GPIO 的其他功能#xff1a;防抖动、中断、唤醒 第五章 具体单板的 GPIO 操作… 嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作 第三章 硬件知识_LED 原理图3.1 先来讲讲怎么看原理图 第四章 普适的 GPIO 引脚操作方法4.1 GPIO 模块一般结构4.2 GPIO 寄存器操作4.3 GPIO 的其他功能防抖动、中断、唤醒 第五章 具体单板的 GPIO 操作方法5.1 AM335X 的 GPIO 操作方法5.1.1 AM335X 的 GPIO 模块结构5.1.2 AM335X 的 GPIO 相关寄存器5.1.3 set-and-clear 协议 5.2 RK3288 的 GPIO 操作方法5.2.1 RK3288 的 GPIO 模块结构5.2.2 RK3288 的 GPIO 相关寄存器 5.3 RK3399 的 GPIO 操作方法5.3.1 RK3399 的 GPIO 模块结构5.3.2 RK3399 的 GPIO 相关寄存器 5.4 IMX6ULL 的 GPIO 操作方法5.4.1 IMX6ULL 的 GPIO 模块结构5.4.2 CCM 用于设置是否向 GPIO 模块提供时钟5.4.3 IOMUXC引脚的模式(Mode、功能)5.4.4 GPIO 模块内部5.4.5 读 GPIO5.4.6 写 GPIO 第三章 硬件知识_LED 原理图 当我们学习 C 语言的时候我们会写个 Hello 程序。 那当我们写 ARM 程序也该有一个简单的程序引领我们入门这个程序就是点亮 LED。 我们怎样去点亮一个 LED 呢 分为三步 1.看原理图确定控制 LED 的引脚; 2.看主芯片的芯片手册确定如何设置控制这个引脚; 3.写程序; 3.1 先来讲讲怎么看原理图 LED 样子有很多种像插脚的贴片的。 它们长得完全不一样因此我们在原理图中将它抽象出来。 点亮 LED 需要通电源同时为了保护 LED加个电阻减小电流。 控制 LED 灯的亮灭可以手动开关 LED但在电子系统中不可能让人来控制开关通过编程利用芯片的引脚去控制开关。 LED 的驱动方式常见的有四种。 方式 1使用引脚输出 3.3V 点亮 LED输出 0V 熄灭 LED。 方式 2使用引脚拉低到 0V 点亮 LED输出 3.3V 熄灭 LED。 有的芯片为了省电等原因其引脚驱动能力不足这时可以使用三极管驱动。 方式 3使用引脚输出 1.2V 点亮 LED输出 0V 熄灭 LED。 方式 4使用引脚输出 0V 点亮 LED输出 1.2V 熄灭 LED。 由此主芯片引脚输出高电平/低电平即可改变 LED 状态而无需关注 GPIO 引脚输出的是 3.3V 还是1.2V。 所以简称输出 1 或 0 逻辑 1–高电平 逻辑 0–低电平 第四章 普适的 GPIO 引脚操作方法 GPIO: General-purpose input/output通用的输入输出口 4.1 GPIO 模块一般结构 a. 有多组 GPIO每组有多个 GPIO b. 使能电源/时钟 c. 模式(Mode)引脚可用于 GPIO 或其他功能 d. 方向引脚 Mode 设置为 GPIO 时可以继续设置它是输出引脚还是输入引脚 e. 数值对于输出引脚可以设置寄存器让它输出高、低电平 对于输入引脚可以读取寄存器得到引脚的当前电平 4.2 GPIO 寄存器操作 a. 芯片手册一般有相关章节用来介绍power/clock 可以设置对应寄存器使能某个 GPIO 模块(Module) 有些芯片的 GPIO 是没有使能开关的即它总是使能的 b. 一个引脚可以用于 GPIO、串口、USB 或其他功能 有对应的寄存器来选择引脚的功能 c. 对于已经设置为 GPIO 功能的引脚有方向寄存器用来设置它的方向输出、输入 d. 对于已经设置为 GPIO 功能的引脚有数据寄存器用来写、读引脚电平状态 GPIO 寄存器的 2 种操作方法 原则不能影响到其他位 1) 直接读写读出、修改对应位、写入 要设置 bit n val data_reg; val val | (1n); data_reg val; 要清除 bit n val data_reg; val val ~(1n); data_reg val; 2) set-and-clear protocol set_reg, clr_reg, data_reg 三个寄存器对应的是同一个物理寄存器, 要设置 bit nset_reg (1n); 要清除 bit nclr_reg (1n); 4.3 GPIO 的其他功能防抖动、中断、唤醒 后续章节再介绍 第五章 具体单板的 GPIO 操作方法 请使用 GIT 下载文档后看下图红框所示目录中各板子对应的文档及图片。 网盘中相同名字的目录下也有对应的视频。 为方便学习在本文档中也把上述 GIT 目录中的文档添加进来了。 5.1 AM335X 的 GPIO 操作方法 GPIO: General-purpose input/output通用的输入输出口 PRCM: Power, Reset, and Clock Management (电源、复位、时钟管理器) CM: Control Module(控制模块) 或 Clock Module (时钟模块) PRM_PER: Power Reset Module Peripheral Registers(电源/复位模块中关于外设的寄存器) CM_PER: Clock Module Peripheral Registers (时钟模块中关于外设的寄存器) 5.1.1 AM335X 的 GPIO 模块结构 有 4 组 GPIOGPIO03每组有 32 个 GPIO。 GPIO 的控制涉及 3 大模块PRCM、Control Module、GPIO 模块本身。 ① PRCM 用于使能模块 GPIO0 永远都是使能的GPIO13 可单独控制。 PRCM 模块给 GPIO 模块常供电只需要使能 GPIO 模块的时钟。 ② Control Module 用于设置模式(Mode) 设置引脚的 Mode(即选择功能)、上下拉电阻等 每一个 GPIO 引脚在 Control Module 中都有一个寄存器怎么找到这个寄存器 a. 根据 pin number 确定 pin name b. 根据 pin name 在 Control Module 中确定寄存器 ③ GPIO 模块内部 方向引脚 Mode 设置为 GPIO 时可以继续设置它是输出引脚还是输入引脚。 数值对于输出引脚可以设置寄存器让它输出高、低电平 对于输入引脚可以读取寄存器得到引脚的当前电平。 5.1.2 AM335X 的 GPIO 相关寄存器 5.1.3 set-and-clear 协议 假设某个 GPIO 被设置为输出怎么设置它的输出电平呢AM335X 中对于每个 GPIO 模块有一个 GPIO_DATAOUT 寄存器其中的每一位对应一个引脚如下 要设置某一位时不能影响到其他位操作方法是读出原来的值修改某一位把新值写回去。需要3 个步骤才可以设置某一位的值这效率太低了 使用 set-and-clear 可以只用一个步骤即可修改某一位的值。 当想设置某一位为 1 时往 DATA_SETDATAOUT 寄存器中某位写入 1 即可芯片内部会把对应引脚的电平设置为 1并且不会影响其他引脚 并非所有的芯片都有 set-and-clear 功能TI 的 AM335X 系列芯片有这功能。 5.2 RK3288 的 GPIO 操作方法 GPIO: General-purpose input/output通用的输入输出口 CRU: Clock Reset Unit (时钟和复位单元) PMU: Power Managerment Unit (电源管理单元) GRF: General Register Files (通用寄存器文件) 5.2.1 RK3288 的 GPIO 模块结构 有 9 组 GPIOGPIO08每组分为最多 4 个小组 port A/B/C/D每小组最多 8 个 GPIO。理论上每组GPIO 的引脚有 32 个但是实际上并没有那么多。比如 GPIO0 只有 GPIO0_A0A7、GPIO0_B0B7、GPIO0_C0C2 这些引脚。 GPIO 的控制涉及 4 大模块CRU、PMU、GRF、GPIO 模块本身。 ① CRU 用于设置是否向 GPIO 模块提供时钟 CRU 的内部结构如下图所示 可以设置寄存器使能 GPIOx 的时钟 a. CRU_CLKGATE17_CON 用于控制 GPIO0 b. CRU_CLKGATE14_CON 用于控制 GPIO18 ② PMU 用于控制电源 电源管理单元里有多个电源域(power domain简称为 PM)在一个域下有多个设备。 比如 PD_ALIVE它下面有这些设备CRU、GRF、GPIO 1~8、TIMER 或 WDT。 比如 PD_PMU它下面有这些设备PMU、SRAM(4K)、Secure GRF、GPIO0。 可见GPIO0、GPIO1~8 分属不同的 PM。 GPIO0、GPIO18 都是常供电的它们是否工作取决于其时钟是否使能。 ③ 设置引脚的模式(Mode、功能) GPIO0 比较特殊为了让其引脚用于 GPIO 功能要设置 PMU 里的相关寄存器。 GPIO18 类似为了让其引脚用于 GPIO 功能要设置 GRF 里的相关寄存器。 ④ GPIO 模块内部 方向引脚设置为 GPIO 时可以继续设置寄存器 GPIO_SWPORTA_DDR 确定它是输出引脚还是输入引脚。 数值对于输出引脚可以设置寄存器 GPIO_SWPORTA_DR 让它输出高、低电平 对于输入引脚可以读取寄存器 GPIO_EXT_PORTA 得到引脚的当前电平。 5.2.2 RK3288 的 GPIO 相关寄存器 5.3 RK3399 的 GPIO 操作方法 GPIO: General-purpose input/output通用的输入输出口 CRU: Clock Reset Unit (时钟和复位单元) PMU: Power Managerment Unit (电源管理单元) GRF: General Register Files (通用寄存器文件) 5.3.1 RK3399 的 GPIO 模块结构 有 5 组 GPIOGPIO04每组分为最多 4 个小组 port A/B/C/D每小组最多 8 个 GPIO。理论上每组 GPIO 的引脚有 32 个但是实际上并没有那么多。比如 GPIO0 只有 GPIO0_A0A7、GPIO0_B0B5 这些引脚。 ① CRU 用于设置是否向 GPIO 模块提供时钟 a. PMUCRU_CLKGATE_CON1 用于控制 GPIO01 b. CRU_CLKGATE_CON31 用于控制 GPIO24 ② PMU 用于控制电源 电源管理单元里有多个电源域(power domain简称为 PM)在一个域下有多个设备。 比如 PD_ALIVE它下面有这些设备CRU、GRF、GPIO 1~4、TIMER 或 WDT。 比如 PD_PMU它下面有这些设备cm0、PMU、SRAM(8K)、Secure GRF、GPIO0、PVTM、I2C。 可见GPIO0、GPIO1~4 分属不同的 PM。 GPIO0、GPIO14 都是常供电的。 ③ 设置引脚的模式(Mode、功能) GPIO01 比较特殊为了让其引脚用于 GPIO 功能要设置 PMU 里的相关寄存器。 GPIO24 类似为了让其引脚用于 GPIO 功能要设置 GRF 里的相关寄存器。 ④ GPIO 模块内部 方向引脚设置为 GPIO 时可以继续设置寄存器 GPIO_SWPORTA_DDR 确定它是输出引脚还是输入引脚。 数值对于输出引脚可以设置寄存器 GPIO_SWPORTA_DR 让它输出高、低电平 对于输入引脚可以读取寄存器 GPIO_EXT_PORTA 得到引脚的当前电平。 5.3.2 RK3399 的 GPIO 相关寄存器 5.4 IMX6ULL 的 GPIO 操作方法 CCM: Clock Controller Module (时钟控制模块) IOMUXC : IOMUX ControllerIO 复用控制器 GPIO: General-purpose input/output通用的输入输出口 5.4.1 IMX6ULL 的 GPIO 模块结构 参考资料芯片手册《Chapter 28: General Purpose Input/Output (GPIO)》 有 5 组 GPIOGPIO1GPIO5每组引脚最多有 32 个但是可能实际上并没有那么多。 GPIO1 有 32 个引脚GPIO1_IO0~GPIO1_IO31 GPIO2 有 22 个引脚GPIO2_IO0~GPIO2_IO21 GPIO3 有 29 个引脚GPIO3_IO0~GPIO3_IO28 GPIO4 有 29 个引脚GPIO4_IO0~GPIO4_IO28 GPIO5 有 12 个引脚GPIO5_IO0~GPIO5_IO11 GPIO 的控制涉及 4 大模块CCM、IOMUXC、GPIO 模块本身框图如下 5.4.2 CCM 用于设置是否向 GPIO 模块提供时钟 参考资料芯片手册《Chapter 18: Clock Controller Module (CCM)》 GPIOx 要用 CCM_CCGRy 寄存器中的 2 位来决定该组 GPIO 是否使能。哪组 GPIO 用哪个 CCM_CCGR 寄存器来设置请看上图红框部分。 CCM_CCGR 寄存器中某 2 位的取值含义如下 ① 00该 GPIO 模块全程被关闭 ② 01该 GPIO 模块在 CPU run mode 情况下是使能的在 WAIT 或 STOP 模式下关闭 ③ 10保留 ④ 11该 GPIO 模块全程使能 GPIO2 时钟控制 GPIO1、GPIO5 时钟控制 GPIO3 时钟控制 GPIO4 时钟控制 5.4.3 IOMUXC引脚的模式(Mode、功能) 参考资料芯片手册《Chapter 32: IOMUX Controller (IOMUXC)》。 对于某个/某组引脚IOMUXC 中有 2 个寄存器用来设置它 ① 选择功能 IOMUXC_SW_MUX_CTL_PAD_ Mux pad xxx选择某个 pad 的功能 IOMUXC_SW_MUX_CTL_GRP_Mux grp xxx选择某组引脚的功能 某个引脚或是某组预设的引脚都有 8 个可选的模式(alternate (ALT) MUX_MODE)。 比如 ② 设置上下拉电阻等参数 IOMUXC_SW_PAD_CTL_PAD_PAD_NAMEpad pad xxx设置某个 pad 的参数 IOMUXC_SW_PAD_CTL_GRP_pad grp xxx设置某组引脚的参数 比如 5.4.4 GPIO 模块内部 我们暂时只需要关心 3 个寄存器 ① GPIOx_GDIR设置引脚方向每位对应一个引脚1-output0-input ② GPIOx_DR设置输出引脚的电平每位对应一个引脚1-高电平0-低电平 ③ GPIOx_PSR读取引脚的电平每位对应一个引脚1-高电平0-低电平 5.4.5 读 GPIO 翻译一下 ① 设置 CCM_CCGRx 寄存器中某位使能对应的 GPIO 模块 // 默认是使能的上图省略了 ② 设置 IOMUX 来选择引脚用于 GPIO ③ 设置 GPIOx_GDIR 中某位为 0把该引脚设置为输入功能 ④ 读 GPIOx_DR 或 GPIOx_PSR 得到某位的值读 GPIOx_DR 返回的是 GPIOx_PSR 的值 5.4.6 写 GPIO 翻译一下 ① 设置 CCM_CCGRx 寄存器中某位使能对应的 GPIO 模块 // 默认是使能的上图省略了 ② 设置 IOMUX 来选择引脚用于 GPIO ③ 设置 GPIOx_GDIR 中某位为 1把该引脚设置为输出功能 ④ 写 GPIOx_DR 某位的值 需要注意的是你可以设置该引脚的 loopback 功能这样就可以从 GPIOx_PSR 中读到引脚的有实 电平你从 GPIOx_DR 中读回的只是上次设置的值它并不能反应引脚的真实电平比如可能因为硬件故障导致该引脚跟地短路了你通过设置 GPIOx_DR 让它输出高电平并不会起效果。 文章转载自: http://www.morning.mrfr.cn.gov.cn.mrfr.cn http://www.morning.trplf.cn.gov.cn.trplf.cn http://www.morning.gsksm.cn.gov.cn.gsksm.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn http://www.morning.guangda11.cn.gov.cn.guangda11.cn http://www.morning.fhrt.cn.gov.cn.fhrt.cn http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn http://www.morning.rnytd.cn.gov.cn.rnytd.cn http://www.morning.lyldhg.cn.gov.cn.lyldhg.cn http://www.morning.fykqh.cn.gov.cn.fykqh.cn http://www.morning.tqsmc.cn.gov.cn.tqsmc.cn http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn http://www.morning.wdshp.cn.gov.cn.wdshp.cn http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.jpgfx.cn.gov.cn.jpgfx.cn http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com http://www.morning.dqdss.cn.gov.cn.dqdss.cn http://www.morning.znqmh.cn.gov.cn.znqmh.cn http://www.morning.srzhm.cn.gov.cn.srzhm.cn http://www.morning.pqjlp.cn.gov.cn.pqjlp.cn http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn http://www.morning.wptdg.cn.gov.cn.wptdg.cn http://www.morning.xrksf.cn.gov.cn.xrksf.cn http://www.morning.ggxbyhk.cn.gov.cn.ggxbyhk.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.sblgt.cn.gov.cn.sblgt.cn http://www.morning.rxpp.cn.gov.cn.rxpp.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.rlhjg.cn.gov.cn.rlhjg.cn http://www.morning.cytr.cn.gov.cn.cytr.cn http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn http://www.morning.grlth.cn.gov.cn.grlth.cn http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn http://www.morning.nzcgj.cn.gov.cn.nzcgj.cn http://www.morning.cpfbg.cn.gov.cn.cpfbg.cn http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.qrqcr.cn.gov.cn.qrqcr.cn http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn http://www.morning.jhkzl.cn.gov.cn.jhkzl.cn http://www.morning.kxqwg.cn.gov.cn.kxqwg.cn http://www.morning.chxsn.cn.gov.cn.chxsn.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.csnmd.cn.gov.cn.csnmd.cn http://www.morning.lhxkl.cn.gov.cn.lhxkl.cn http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com http://www.morning.qgxnw.cn.gov.cn.qgxnw.cn http://www.morning.mprpx.cn.gov.cn.mprpx.cn http://www.morning.fzwf.cn.gov.cn.fzwf.cn http://www.morning.klyzg.cn.gov.cn.klyzg.cn http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.knsmh.cn.gov.cn.knsmh.cn http://www.morning.lfttb.cn.gov.cn.lfttb.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.mwwnz.cn.gov.cn.mwwnz.cn http://www.morning.nbsfb.cn.gov.cn.nbsfb.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.mbnhr.cn.gov.cn.mbnhr.cn http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.nwfpl.cn.gov.cn.nwfpl.cn http://www.morning.pfnrj.cn.gov.cn.pfnrj.cn http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.fkgqn.cn.gov.cn.fkgqn.cn http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn http://www.morning.ygkk.cn.gov.cn.ygkk.cn http://www.morning.pypqf.cn.gov.cn.pypqf.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn http://www.morning.ylqrc.cn.gov.cn.ylqrc.cn 查看全文 http://www.tj-hxxt.cn/news/223280.html 相关文章: 徐汇区网站建设百度推广开户电话 vr全景网站开发企业查询免费 上海网站编辑招聘ps做网站效果图制作过程 设置自己的网站jsp电商网站开发教程 cms203片北京seo经理 用友财务软件官方网站wordpress英文版修改栏 建设图书馆网站做电脑系统那个网站好点 网站建设人文环境廊坊网站搜索优化 做兼职的设计网站有哪些工作内容visual studio 做网站 建网页还是网站好顶棒 技术支持 东莞网站建设 微信网页版登陆seo网站优化价格 网站查询是否安全wordpress默认根目录 网站建设空间申请郑州网站设计汉狮网络 手机网站展示关于百度网站是多少 网站开发按钮素材微信营销的方式有哪些 计算机网站建设体会工艺品商城网站建设 在哪查看网站被收录的情况怎样在网站做咨询医生挣钱 西宁软件优化网站建设销售网站建设考核指标 网站的建设模式是指什么时候网站建设该如何学 海南网站建设哪家不错建视频网站多少钱 惠州html5网站建设抓取wordpress站点用户 聊城网站推广品牌用什么软件做网站最好 如何在网站上做背景图片怎么做万豪酒店线上营销推广 浙江省建设安监站网站房产手机网站模板 网站开发要百度广告点击软件 建设网站和公告号的意义杭州动漫设计公司有哪些 济宁网站网站建设西安seo优化推广 公司做网站需要提供什么条件梦想小镇旅游官方网站建设 忠县网站制作网站备案需要准备什么材料 网站结构建设方案wordpress在线支付表单