我不熟悉对 LaunchPad 进行编程、一直在尝试弄清楚如何将数据/字符串输出到我的计算机控制台。 我主要在 Linux 中使用 minicom、但我也尝试在 Windows 10中使用 PuTTY。 都不会产生任何输出。 我已经通读了 utils/uartstdio.c 和 utils/uartstdio.h 源代码、根本不能弄清楚我缺少的内容。 如果有任何帮助,我们将不胜感激。
仅供参考、我确实确保 minicom 和 PuTTY 配置为115200bps。
以下是我的代码:
#include #include #include "stdlib.h" #include #include "inc/hw_types.h" #include "void/hw_gpio.h" #include "inc/hw_memmap.h" #include "inc/hw_sysctl.h" #include "inc/hw_uart.h" #include "driverlib/gpio.h" #define "driverlib_rom_define #include "#define gpio/driverlib" (#define #define #define #define gpio.mdio/gpin #define #define #include "#define #define #define #define #define #define #define #include "in_gpin/gpio.in/gpin #define #define #define #define #define #define #include "in_unicls" (#define #define #define #define #define #define #include "in_ ROM_SysCtlClockSet (SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN); ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA); ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB); ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF); ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART0); ROM_GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、LED_RELED_LED_BLE|LED_GREEN); ROM_GPIOPinTypeGPIOInput (GPIO_Porta_base、GPIO_PIN_5); // UARTprintf 的设置 ROM_UARTClockSourceSet (UART0_BASE、UART_CLOCK _PIOSC); ROM_GPIOPinConfigure (GPIO_PA0_U0RX); ROM_GPIOPinConfigure (GPIO_PA1_U0TX); ROM_GPIOPinTypeUART (GPIO_PORTB_BASE、GPIO_PIN_0|GPIO_PIN_1); UARTStdioConfig (0、115200、MAP_SysCtlClockGet ()); UARTprintf ("data init"); initialize(); 对于(;) { int32_t btn = ROM_GPIOPinRead (GPIO_Porta_base、GPIO_PIN_5); UARTprintf ("btn %ld、btn); if (btn!= 0) { cycle_lights(); } } void initialize() { ROM_GPIOPinWrite (GPIO_PORTF_BASE、LED_RED_LED_GREEN|LED_BLUE、LED_GREEN); } void cycle_lights () { ROM_SysCtlDelay (50000000); ROM_GPIOPinWrite (GPIO_PORTF_BASE、LED_RED、LED_RED); ROM_SysCtlDelay (50000000); ROM_GPIOPinWrite (GPIO_PORTF_BASE、LED_RED_LED_GREEN|LED_BLUE、LED_RED); ROM_SysCtlDelay (100000000); ROM_GPIOPinWrite (GPIO_PORTF_BASE、LED_RED_LED_GREEN|LED_BLUE、LED_GREEN); }
编辑: 尝试对某些内容重新排序并使其更具可读性...
编辑:
-根据 Amit 的建议、将 UARTStdioConfig (0、115200、MAP_SysCtlClockGet ());"改回"UARTStdioConfig (0、115200、16000000);"。
-尝试通过 Makefile (而不是在 main.c 中)包含"utils/uartstdio.c"(请参阅下面的 Makefile)。
以下是我的 Makefile 文件、如果它有助于诊断:
#/tiva-template/Makefile 添加了源代码 uartstdio.c # target:输出文件目标的名称 = main # MCU:为 MCU 构建的器件型号= TM4C123GH6PM # SOURCES:输入源源列表 sources = main.c startup_gcc.c uartstdio.c #包括: include 列表、默认情况下、use includes 目录 includes =-IIncludde # OUTDIR:用于输出 OUTDIR 的目录= Build # TIVAWARE_PATH:tivaware 文件夹的路径 TIVAWARE_PATH =$(HOME)/Embedded/tivaware # LD_script: 链接器脚本 LD_script =$(MCU).ld # define flags CFLAGS =-g -mthumb -mcpu=cortex-M4 -mfpv4-sp-D16 -mfloat-abi=softfp CFLAGS +=-OS -ffund-SECTIONS -fdata-SECTIONS -md -isr=c99#-mcu#-t##-t##-t##-rgv1# –t##-t#-t###-rgv1#–t###-t&t##-t#-rgv###-t##-t&t##-rgc###-t###-t##-t&t##-t&t#-t&t#-t##-t##-rand&t#-t#-t#-t#-t##-t##-t##-t# #用户配置结束 ######################## #################### ########## # BINARIES ########################## CC = ARM-NONE - eabi-gcc LD = ARM-NONE - eabi-ld objcopy = ARM-NONE - eabi-objcopy rm = rm -f MKDIR = mkdir -p ######################## #无论源路径 对象是什么、都放置在构建目录中的目标文件列表=$(addprefix $(OUTDIR)/、$(notdir $(sources:.c=.o)) )#默认值:构建 bin All:$(OUTDIR)/$(target).bin $(OUTDIR)/%.o:src/%.c |$(OUTDIR) $(CC)-o $@$^$(CFLAGS) $(OUTDIR)/a.out:$(objects) $(LD)-o $@$^$(LDFLAGS) $(OUTDIR)/main.bin:$(OUTDIR)/a.out $(objcopy)-O 二进制文件<<$@ #创建输出目录 $(OUTDIR): $(MKDIR)$(OUTDIR) Clean: -$(RM)$(OUTDIR)/* .s仿冒:全部干净