请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 先生们:
SPI 引脚(在本示例中为 CLK 引脚)的典型引脚配置为:
GPIOPinTypeSSI (SSI_gyros_CLK_PORT、SSI_gyros_CLK_PIN); GPIOPinConfigure (GPIO_PA2_SSI0CLK);
我想拥有一个固定的外部函数、让我从主应用中初始化给定的 SPI 外设。
简化 CLK 引脚、思路是:
SPISensorHWInit (Int32_t SSIBase、Int32_t sensorClockPort、int_32_t sensorClockPin)//加上另一个 MISO/MOSI/CS GPIO 的端口和引脚 { //首先、执行 SSI 外设配置
//然后是每个引脚,例如:
GPIOPinTypeSSI (sensorClockBase、sensorClockPin); GPIOPinConfigure (MORing);//这有点棘手… …}
我可以看到有关某个参数的两种可能的方法:
1) 1)要在"打包"函数内传递原始 GPIOPinConfigure GPIO_PA2_SSI0CLK 参数、请在已有的长列表中再添加一个参数
或
2) 2)为了在函数内重建上述参数、如果我们处理 SSI 外设并且知道 SSI 基址足以实现该目的、
我查看了 GPIOPinConfigure 代码、它不是那么容易读取。 最后、我们要写入一个寄存器:
HWREG (ui32Base + GPIO_PCTL)=((HWREG (ui32Base + GPIO_PCTL)和 ~(0xF << ui32Shift))| ((ui32PinConfig & 0xF)<< ui32Shift);
问题是:我们能否从已知数字 SSI base 和 pin 中确定 Base、Shift 和 Remaining PinConfig? 什么是"魔法"规则?
此致
布鲁诺