This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129ENCPDT:GPIO 端口一次读取/写入8位

Guru**** 2042920 points
Other Parts Discussed in Thread: SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/972583/tm4c129encpdt-gpio-port-read-write-8-bits-at-a-time

器件型号:TM4C129ENCPDT
Thread 中讨论的其他器件:SysConfig

我的项目使用 TI TM4C129ENCPDTI3 MCU、使用 Code Composer Studio 版本9.0.1.00004、其中 TivaWare_C_Series-2.2.0.295、BIOS_6_83_00_18和 xdctools_3_32_00_06_core 在 Windows 10 Pro 上运行。

我正在处理一个项目、该项目要求我尽快将8位写入 GPIO 端口。 我使用 SysConfig 工具配置了端口、并拥有 pinouts.c 和.h 文件。  当然、对逐位 I/O 的支持很常见、并且很好理解。  我一直在寻找并且找不到一次工作字节的直接端口写入或读取功能。  这是我曾经使用过的每个 IDE/MCU 的基本功能。

代码必须快速。  此端口写入操作必须在 ISR 中执行、以填充4个 GPIO 端口、并在125nS 内在另一个端口上切换一个位。

我需要按照这种方式完成一些任务(也需要从另一个端口一次读取一个字节):

uint8_t outByte = 0x55;

GPIO_Porta = outByte;//我需要在这里用一条语句将0x55数据并行写入端口引脚、而不必按位分解 outByte 并一次发送一个位。

下面是我尝试测试一次写入8位的能力的代码:

#include 
#include 
#include "pinout.h"
#include "inc/hw_gpio.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/rom_map.h"
#include "driverlib/pin_map.h"

#include "driverlib/pin_map.h"#include "driverlib/trinu.h"#include #include "#include "driverlib_module"#include
"#include "driverlib_rom.io.h"#include #include #include "#include "#include "#include "#include "#rintrina.h"#include #include "#include "#rina.h





#include 
#include 

/* BIOS 模块标题*/
#include 
#include 
#include 
#include 

易失性 uint32_t ui32Loop;


/*
===== main ====
*/

lanconfig lanCfg =
{

};

UdpServerConfig UdpServerCfg =
{
1000 // UDP 服务器端口
};

空任务(UArg0、UArgarg1){

DIS_SER_CLK;
for (ui32Loop = 0;ui32Loop < 100000;ui32Loop ++){}
ENAB_SER_CLK;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
SET_SR_SHIFT_MODE;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
SET_SR_LOAD_MODE;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
SET_SR_SHIFT_MODE;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
DIS_SER_CLK;
for (ui32Loop = 0;ui32Loop < 200;ui32Loop ++){}

while (1)
{
}

}

uint32_t g_SysClock;
int main()
{
#define task_stack_size 512

SysCtlMOSCConfigSet (SYSCTL_MOSC_HIGHFREQ);
//
//将时钟设置为直接从频率为120MHz 的晶体运行。
//
G_SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);
PinoutSet();

IntMasterDisable();

DIS_SER_CLK;

for (ui32Loop = 0;ui32Loop < 100000;ui32Loop ++){}
CLEAR_TX_DATA_SR;
for (ui32Loop = 0;ui32Loop < 100000;ui32Loop ++){}
RUN_TX_DATA_SR;
//写入端口测试数据(A、D、K、L)
*(volatile unsigned long *) 0x400043FC = 0x55;

for (ui32Loop = 0;ui32Loop < 100000;ui32Loop ++){}
ENAB_SER_CLK;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
SET_SR_SHIFT_MODE;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
SET_SR_LOAD_MODE;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
SET_SR_SHIFT_MODE;
for (ui32Loop = 0;ui32Loop < 100;ui32Loop ++){}
DIS_SER_CLK;
for (ui32Loop = 0;ui32Loop < 200;ui32Loop ++){}

while (1)
{
}



// Task_Params taskParams;
// Task_Handle task0;
// Error_Block EB;
//
// uint8_t appTaskStack[task_stack_size];
//
// Task_Parfg_init (&Params);
//









任务&Params.stack = appTaskParams.// taskParams.stack_0/task_init/
任务= task_params.//任务&params.//任务&params.//任务= task_params.//任务= task_params.//任务1;task_params&task_params.//任务= task_params (//任务= task_params.rand&params = task_params.//任务= task_params.//任务= task_params.r&task_params;task&task_params.//
// udpServer_init (&UdpServerCfg);
// UdpServer_start ();

// BIOS_start ();//不返回*/
返回(0);
}

RIB_IO.H

/*
* RIB_IO.H
*
作者:EmboTek LLC、Stephen Killingsworth
*
*修订日期 说明
*---------- ------------------------------------------
* 02021-01-15原始创建
*/
#ifndef __RIB_IO_H_
#define __RIB_IO_H_

//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
// GPIO 输出
//========================================================================================================
#define TX_DATA0_PORT (GPIO_Porta_base)
#define TX_Data1_port (GPIO_PORTD_base)
#define TX_DATA2_PORT (GPIO_PORTK_base)
#define TX_DATA3_PORT (GPIO_PORTL_base)

#define UART3_RTS_PORT (GPIO_PORTP_BASE)
#define UART3_RTS_PIN (GPIO_PIN_4)

#define UART3_CTS_PORT (GPIO_PORTP_BASE)
#define UART3_CTS_PIN (GPIO_PIN_5)

#define RADIO_OFF_VCC_PORT (GPIO_PORTN_BASE)
#define RADIO_OFF_PIN (GPIO_PIN_0)

#define RADIO_RESET_PORT (GPIO_PORTN_BASE)
#define RADIO_RESET_PIN (GPIO_PIN_1)

#define CLK_OE_PORT (GPIO_PORTN_BASE)
#define CLK_OE_PIN (GPIO_PIN_2)

#define TX_DATA_CLR_PORT (GPIO_PORTN_BASE)
#define TX_DATA_CLR_PIN (GPIO_PIN_3)

#define RX_DATA_CLR_PORT (GPIO_PORTN_BASE)
#define RX_DATA_CLR_PIN (GPIO_PIN_4)

#define SH_LD_PORT (GPIO_PORTN_BASE)
#define SH_LD_PIN (GPIO_PIN_5)

//===========================================================================================
// GPIO 输出宏
//===================================================
#define SET_UART3_RTS GPIOPinWrite (UART3_RTS_PORT、UART3_RTS_PIN、UART3_RTS_PIN)
#define CLR_UART3_RTS GPIOPinWrite (UART3_RTS_PORT、UART3_RTS_PIN、0)

#define SET_UART3_CTS GPIOPinWrite (UART3_CTS_PORT、UART3_CTS_PIN、UART3_CTS_PIN)
#define CLR_UART3_CTS GPIOPinWrite (UART3_CTS_PORT、UART3_CTS_PIN、0)

#define CLEAR_TX_DATA_SR GPIOPinWrite (TX_DATA_CLR_PORT、TX_DATA_CLR_PIN、0)
#define RUN_TX_DATA_SR GPIOPinWrite (TX_DATA_CLR_PORT、TX_DATA_CLR_PIN、TX_DATA_CLR_PIN)

#define SET_SR_LOAD_MODE GPIOPinWrite (SH_LD_PORT、SH_LD_PIN、0)
#define SET_SR_SHIFT_MODE GPIOPinWrite (SH_LD_PORT、SH_LD_PIN、SH_LD_PIN)

#define ENAB_SER_CLK GPIOPinWrite (CLK_OE_PORT、CLK_OE_PIN、CLK_OE_PIN)
#define DIS_SER_CLK GPIOPinWrite (CLK_OE_PORT、CLK_OE_PIN、0)

//========================================================================================================================================================1.
// GPIO 输入
//===================================================================
#define RX_DATA0_PORT (GPIO_PORTM_BASE)

#define TX_DATA_INT_PORT (GPIO_PORTQ_BASE)
#define TX_DATA_INT_PIN (GPIO_PIN_0)

#define RX_DATA_INT_PORT (GPIO_PORTQ_BASE)
#define RX_DATA_INT_PIN (GPIO_PIN_1)

// REF:ICD 第4.3.2节故障//
数据有效信息
//高电平有效。
#define RADIO_DATA_VALVE_PORT (GPIO_PORTQ_BASE)
#define RADIO_DATA_VALVE_PIN (GPIO_PIN_2)

// REF:ICD 第4.3.2节 FAULT\//
故障检测标志(在检测到过流故障条件时置位)。
//低电平有效。
#define RADIO_LOCK_DET_PORT (GPIO_PORTQ_BASE)
#define RADIO_LOCK_DET_PIN (GPIO_PIN_3)

// REF:ICD 第4.3.2节 LOCK_DETECT
// PLL 锁定状态信息。
//高电平有效。
#define RADIO_FAULT_PORT (GPIO_PORTQ_BASE)
#define RADIO_FAULT_PIN (GPIO_PIN_4)

//===========================================================================================
// GPIO 输入宏
//===================================================
#define READ_TX_DATA_INT GPIOPinRead (TX_DATA_INT_PORT、TX_DATA_INT_PIN)
#define READ_RX_DATA_INT GPIOPinRead (RX_DATA_INT_PORT、RX_DATA_INT_PIN)
#define READ_RADIO_DATA_VALID GPIOPinRead (RADIO_DATA_VALIDE_PORT、RADIO_DATA_VALIDE_PIN)
#define READ_LOCK_DET GPIOPinRead (RADIO_LOCK_DET_PORT、RADIO_LOCK_DET_PIN)
#define READ_RADIO_FAULT GPIOPinRead (RADIO_FAULT_PORT、RADIO_FAULT_PIN)

//
逻辑评估
//
#define RADIO_DATA_IS 有效 (READ_RADIO_DATA_VALID = 1)
#define RADIO_IS 故障 (READ_RADIO_FAULT = 0)

// S 频带仅限#define
RADIO_HAS_LOCK_DET (READ_LOCK_DET = 1)


#endif //_ RIB_IO_H_


引脚排列

//
//
//为不同信号配置器件引脚
//
//版权所有(C) 2014 Texas Instruments Incorporated - http://www.ti.com/
//

//重新分发和使用源码和二进制格式,无论
是否修改//,只要
满足以下条件//:
//
//重新分发源代码必须保留上述版权
//声明、此条件列表和以下免责声明。
//
//二进制形式的再发行必须复制上述版权
//声明、此条件列表和//

分发随附的//文档和/或其他材料中的以下免责声明。
////
未经

事先书面许可,不能使用德州仪器公司的名称或//其贡献者的名称来认可或推广源自此软件的产品//。
////
本软件由版权所有者和贡献者提供
//“按原样”,不

承认任何明示或暗示的保证,包括但不限于//适销性和对//特定用途适用性的暗示保证。 在任何情况下、版权
//所有者或贡献者都不对任何直接、间接、偶然、
//特殊、模范、 或相应的损害(包括但不
限于采购替代产品或服务;丧失使用、
//数据或利润; 或业务中断)、无论

出于何种原因使用
本软件(即使被告知可能会造成此类损坏)、还是出于任何原因而产生的任何//责任理论(无论是合同、严格责任还是侵权行为)//(包括疏忽或其他)。
////
*****************

//此文件是在2021年1月12日下午4:57:49时自动生成
//由 TI PinMux 版本1.6.0+1543
//
//

#include 
#include 
#include "inc/hw_gpio.h"
#include "include/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/rom_map.h"
#include "driverlib/rom_map.h"


#include "driverlib/rom_map.h"#include "driverlib/rom_map.h"#include "driverlib/rom_map.h"



//
//! \addtogroup pinout_API
//! @{
//
//*********

//
//
//! 针对客户特定用途配置器件引脚。
//!
//! \无返回。
////
*****************
void
PinoutSet (void)
{
//
//启用外设时钟
//
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
MAP_SysCtlPeripheralEnable
(SYSCTL_Periph_GPIOF);SYSCTL_GPIOPTL (SYSCTL_PERIPG_GPIOG);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOJ);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOK);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOL);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPOK);
SysCtlPeripheralEnable (SYSCTL_GPIOL);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);

//
//为 PF0配置 GPIO 引脚多路复用
器//为 EN0LED0
//
map_GPIOPinConfigure (GPIO_PF0_EN0LED0);
GPIOPinTypeEthernetLED (GPIO_PORTF_BASE、GPIO_PIN_0);

//
//为 PF4配置 GPIO 引脚多路复用
器//为 EN0LED1
//
map_GPIOPinConfigure (GPIO_PF4_EN0LED1);
GPIOPinTypeEthernetLED (GPIO_PORTF_BASE、GPIO_PIN_4);

//
//为 PG0配置 GPIO 引脚多路复用
器//为 EN0PPS
//
map_GPIOPinConfigure (GPIO_PG0_EN0PPS);
GPIOPinTypeEthernetMII (GPIO_PORTG_base、GPIO_PIN_0);

//
//为 PF1配置 GPIO 引脚多路复用
器//为 EN0LED2配置
//
map_GPIOPinConfigure (GPIO_PF1 _EN0LED2);
GPIOPinTypeEthernetLED (GPIO_PORTF_BASE、GPIO_PIN_1);

//
//为 PA0配置 GPIO 引脚多路复用
器//为 GPIO_PA0
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_0);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_0、GPIO_PIN_0);

//
//为 PA1配置 GPIO 引脚多路复用
器//为 GPIO_PA1配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_1);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_1、GPIO_PIN_1);

//
//为 PA2配置 GPIO 引脚多路复用
器//为 GPIO_PA2配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_2);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、GPIO_PIN_2);

//
//为 PA3配置 GPIO 引脚多路复用
器//为 GPIO_PA3配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_3);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、GPIO_PIN_3);

//
//为 PA4配置 GPIO 引脚多路复用
器//为 GPIO_PA4配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_4);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_4、GPIO_PIN_4);

//
//为 PA5配置 GPIO 引脚多路复用
器//为 GPIO_PA5配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_5);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_5、GPIO_PIN_5);

//
//为 PA6配置 GPIO 引脚多路复用
器//为 GPIO_PA6配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_6);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_6、GPIO_PIN_6);

//
//为 PA7配置 GPIO 引脚多路复用
器//为 GPIO_PA7配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_7);
map_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_7、GPIO_PIN_7);

//
//为 PD0配置 GPIO 引脚多路复用
器//为 GPIO_PD0
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_0);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_0、GPIO_PIN_0);

//
//为 PD1配置 GPIO 引脚多路复用
器//为 GPIO_PD1
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_1);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_1、GPIO_PIN_1);

//
//为 PD2配置 GPIO 引脚多路复用
器//为 GPIO_PD2
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_2);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_2、GPIO_PIN_2);

//
//为 PD3配置 GPIO 引脚多路复用
器//为 GPIO_PD3配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_3);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_3、GPIO_PIN_3);

//
//为 PD4配置 GPIO 引脚多路复用
器//为 GPIO_PD4配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_4);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_4、GPIO_PIN_4);

//
//为 PD5配置 GPIO 引脚多路复用
器//为 GPIO_PD5配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_5);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_5、GPIO_PIN_5);

//
//为 PD6配置 GPIO 引脚多路复用
器//为 GPIO_PD6配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_6);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_6、GPIO_PIN_6);

//
解锁端口引脚并设置提交位
//
HWREG (GPIO_PORTD_BASE+GPIO_O_LOCK)= GPIO_LOCK_KEY;
HWREG (GPIO_PORTD_BASE+GPIO_O_CR)|= GPIO_PIN_7;
HWREG (GPIO_PORTD_BASE+GPIO_O_LOCK)= 0x0;

//
//为 PD7配置 GPIO 引脚多路复用
器//为 GPIO_PD7配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_7);
map_GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_7、GPIO_PIN_7);

//
//为 PK0配置 GPIO 引脚多路复用
器//为 GPIO_PK0
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_0);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_0、GPIO_PIN_0);

//
//为 PK1配置 GPIO 引脚多路复用
器//为 GPIO_PK1
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_1);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_1、GPIO_PIN_1);

//
//为 PK2配置 GPIO 引脚多路复用
器//为 GPIO_PK2
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_2);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_2、GPIO_PIN_2);

//
//为 PK3配置 GPIO 引脚多路复用
器//为 GPIO_PK3
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_3);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_3、GPIO_PIN_3);

//
//为 PK4配置 GPIO 引脚多路复用
器//为 GPIO_PK4
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_4);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_4、GPIO_PIN_4);

//
//为 PK5配置 GPIO 引脚多路复用
器//为 GPIO_PK5
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_5);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_5、GPIO_PIN_5);

//
//为 PK6配置 GPIO 引脚多路复用
器//为 GPIO_PK6
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_6);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_6、GPIO_PIN_6);

//
//为 PK7配置 GPIO 引脚多路复用
器//为 GPIO_PK7
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTK_base、GPIO_PIN_7);
map_GPIOPinWrite (GPIO_PORTK_base、GPIO_PIN_7、GPIO_PIN_7);

//
//为 PL0配置 GPIO 引脚多路复用
器//为 GPIO_PL0
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_0);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_0、GPIO_PIN_0);

//
//为 PL1配置 GPIO 引脚多路复用
器//为 GPIO_PL1
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_1);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_1、GPIO_PIN_1);

//
//为 PL2配置 GPIO 引脚多路复用
器//为 GPIO_PL2
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_2);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_2、GPIO_PIN_2);

//
//为 PL3配置 GPIO 引脚多路复用
器//为 GPIO_PL3配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_3);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_3、GPIO_PIN_3);

//
//为 PL4配置 GPIO 引脚多路复用
器//为 GPIO_PL4配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_4);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_4、GPIO_PIN_4);

//
//为 PL5配置 GPIO 引脚多路复用
器//为 GPIO_PL5配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_5);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_5、GPIO_PIN_5);

//
//为 PL6配置 GPIO 引脚多路复用
器//为 GPIO_PL6配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_6);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_6、GPIO_PIN_6);

//
//为 PL7配置 GPIO 引脚多路复用
器//为 GPIO_PL7配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTL_base、GPIO_PIN_7);
map_GPIOPinWrite (GPIO_PORTL_base、GPIO_PIN_7、GPIO_PIN_7);

//
//为 PM0配置 GPIO 引脚多路复用
器//为 GPIO_PM0
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_0);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_0、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM1配置 GPIO 引脚多路复用
器//为 GPIO_PM1
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_1);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_1、GPIO_FORM_2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM2配置 GPIO 引脚多路复用
器//为 GPIO_PM2
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_2);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_2、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM3配置 GPIO 引脚多路复用
器//为 GPIO_PM3配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_3);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_3、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM4配置 GPIO 引脚多路复用
器//为 GPIO_PM4配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_4);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_4、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM5配置 GPIO 引脚多路复用
器//为 GPIO_PM5
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_5);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_5、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM6配置 GPIO 引脚多路复用
器//为 GPIO_PM6配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_6);
map_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_6、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PM7配置 GPIO 引脚多路复用
器//为 GPIO_PM7配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_7);
MAP_GPIOPadConfigSet (GPIO_PORTM_BASE、GPIO_PIN_7、GPIO_FORM_2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PQ4配置 GPIO 引脚多路复用
器//为 GPIO_PQ4配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_4);

//
//为 PQ3配置 GPIO 引脚多路复用
器//为 GPIO_PQ3配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_3);
map_GPIOPadConfigSet (GPIO_PORTQ_BASE、GPIO_PIN_3、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PQ2配置 GPIO 引脚多路复用
器//为 GPIO_PQ2配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_2);
map_GPIOPadConfigSet (GPIO_PORTQ_BASE、GPIO_PIN_2、GPIO_Strength _2mA、 GPIO_PIN_TYPE_STD_WPU);

//
//为 PQ1配置 GPIO 引脚多路复用
器//为 GPIO_PQ1配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_1);

//
//为 PQ0配置 GPIO 引脚多路复用
器//为 GPIO_PQ0配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_0);

//
//为 PN5配置 GPIO 引脚多路复用
器//为 GPIO_PN5配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_5);

//
//为 PN4配置 GPIO 引脚多路复用
器//为 GPIO_PN4配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_4);
map_GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_4、GPIO_PIN_4);

//
//为 PN3配置 GPIO 引脚多路复用
器//为 GPIO_PN3配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_3);
map_GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_3、GPIO_PIN_3);

//
//为 PN2配置 GPIO 引脚多路复用
器//为 GPIO_PN2配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_2);

//
//为 PN1配置 GPIO 引脚多路复用
器//为 GPIO_PN1配置 GPIO 引脚多路复用器
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_1);
map_GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_1、GPIO_PIN_1);

//
//为 PN0配置 GPIO 引脚多路复用
器//为 GPIO_PN0
//
map_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_0);
map_GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_0、0x0);

//
//为 PB2配置 GPIO 引脚多路复用
器//为 I2C0SCL 配置引脚多路复用器
//
MAP_GPIOPinConfigure (GPIO_PB2_I2C0SCL);
MAP_GPIOPinTypeI2CSCL (GPIO_PORTB_BASE、GPIO_PIN_2);

//
//为 PB3配置 GPIO 引脚多路复用
器//为 I2C0SDA 配置 GPIO 引脚多路复用器
//
map_GPIOPinConfigure (GPIO_PB3_I2C0SDA);
map_GPIOPinTypeI2C (GPIO_PORTB_BASE、GPIO_PIN_3);

//
//为 PJ0配置 GPIO 引脚多路复用
器//为 U3RX
//
map_GPIOPinConfigure (GPIO_PJ0_U3RX);
map_GPIOPinTypeUART (GPIO_PORTJ_BASE、GPIO_PIN_0);

//
//为 PJ1配置 GPIO 引脚多路复用
器//为 U3TX 配置 GPIO 引脚多路复用器
//
MAP_GPIOPinConfigure (GPIO_PJ1_U3TX);
MAP_GPIOPinTypeUART (GPIO_PORTJ_BASE、GPIO_PIN_1);

//
//为 PP5配置 GPIO 引脚多路复用
器//为 U3CTS
//
map_GPIOPinConfigure (GPIO_PP5_U3CTS);
map_GPIOPinTypeUART (GPIO_PORTP_BASE、GPIO_PIN_5);

//
//为 PP4配置 GPIO 引脚多路复用
器//为 U3RTS 配置
//
map_GPIOPinConfigure (GPIO_PP4_U3RTS);
map_GPIOPinTypeUART (GPIO_PORTP_BASE、GPIO_PIN_4);

}

//*********
//
//关闭 Doxygen 组。
//! @}
//
//*********

引脚排列。H

//
// pinout.h
//
//为不同的信号配置器件引脚
//
//版权所有(C) 2014 Texas Instruments Incorporated - http://www.ti.com/
//

////重新分发和使用源码和二进制格式,无论
是否修改//,只要
满足以下条件//:
//
//重新分发源代码必须保留上述版权
//声明、此条件列表和以下免责声明。
//
//二进制形式的再发行必须复制上述版权
//声明、此条件列表和//

分发随附的//文档和/或其他材料中的以下免责声明。
////
未经

事先书面许可,不能使用德州仪器公司的名称或//其贡献者的名称来认可或推广源自此软件的产品//。
////
本软件由版权所有者和贡献者提供
//“按原样”,不

承认任何明示或暗示的保证,包括但不限于//适销性和对//特定用途适用性的暗示保证。 在任何情况下、版权
//所有者或贡献者都不对任何直接、间接、偶然、
//特殊、模范、 或相应的损害(包括但不
限于采购替代产品或服务;丧失使用、
//数据或利润; 或业务中断)、无论

出于何种原因使用
本软件(即使被告知可能会造成此类损坏)、还是出于任何原因而产生的任何//责任理论(无论是合同、严格责任还是侵权行为)//(包括疏忽或其他)。
////
*****************

//此文件是在2021年1月12日下午4:57:49时自动生成
//由 TI PinMux 版本1.6.0+1543
//
//

#ifndef __drivers_pinout_H__
#define __drivers_pinout_H__

//*********
//
//如果使用 C++编译
器进行编译,请使此头文件中的所有定义//具有 C 绑定。
////
*****************
#ifdef __cplusplus
extern "C"
{
#endif

//*********
//
//原型。
////
*****************
extern void PinoutSet (void);

//*********
//
////将 C++编译器的 C 绑定部分标记为结尾。
////
*****************
#ifdef __cplusplus
}
#endif

#endif //__drivers_pinout_H__

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Stephen:

     假设您要将值0x55写入 Porta、您可以执行以下操作。  

    MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_7 | GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0、0x55);