我想我知道该主题的问题的答案、但还是让我解释一下我为什么要问这个问题。
我正在参加 EDX 课程 嵌入式系统-塑造世界:微控制器输入/输出。 在其中一个讲座中、有一个代码片段让我非常困惑。 以下是该代码的重要部分:
#include "tm4c123geP6.h" //用于初始化输入和输出端口 F 引脚的子例程 // PF4是输入,PF2是输出 void PortF_Init (void) { volatile unsigned long delay; SYSCTL_RCGC2_R |= 0x00000020; // 1)激活端口 F 延迟的时钟= SYSCTL_RCGC2_R; //留出时间让时钟启动 GPIO_PORTF_LOCK_R = 0x4C4F434B;// 2)解锁 GPIO 端口 F GPIO_PORTF_CR_R = 0x1F; //允许对 PF4-0进行更改 //只需要解锁 PF0、其他位不能被锁定 GPIO_PORTF_AMSEL_R = 0x00; // 3)禁用 PF GPIO_PORTF_PCTL_R = 0x00000000上的模拟;// 4) PF4-0 GPIO_PORTF_DIR_R = 0x0E 上的 PCTL GPIO; // 5) PF4、PF0 in、PF3-1 out GPIO_PORTF_AFSEL_R = 0x00; // 6)禁用 PF7-0 GPIO_PORTF_PUR_0x11上的 alt funt; //在 PF0和 PF4 GPIO_PORTF_DEN_R 上启用上拉电阻= 0x1F; // 7)在 PF4-0 上启用数字 I/O }
让我感到困扰的是第10行。 我知道这行代码的用途是什么。 但为什么它是这样写的呢? 这是 TI 微控制器代码中的某种特殊等待方式吗?
在 诊断 TM4C 器件的常见开发问题和提示与信息的第2期中 、使用更清晰的代码来解决相同的问题。
请不要将我的问题视为对代码作者的批评。 我真的很困惑。
R