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.
我的项目使用 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.//任务¶ms.//任务¶ms.//任务= task_params.//任务= task_params.//任务1;task_params&task_params.//任务= task_params (//任务= task_params.rand¶ms = 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__