大家好、我在设置 UART 通信时遇到了问题。 我只想使用 UARTprintf。 如果我删除 configureUART(),我的 PWM 信号工作正常;如果我注释掉 UARTStdioConfig (0、115200、g_ui32SysClock),则整个操作正常;我使用 timer.c 示例尝试设置此设置。
我不断得到#10010 null 错误和#10234-D null 错误。
请提供任何帮助
#include
#include
#include
包含"inc/hw_ints.h"#include "inc/hw_memmap.h"#include "inc/hw_types.h"#include "inc/hw_gpio.h"#include "inc/hw_pwm.h"#include "driverlib/debug.h"#include "driverlib/driverlib"#driverlib/driver.h"#include "driverlib/driver.h"#driverlib_dive.trat/driveript/driverlib#include"#driver/hpin/driverlib/#driver/hpio.driverlib#include "#driverlib.driverlib#include "#driver.h
//
//本节包含 UART 通信相关性-用于检查所写入的代码,但大多数//
////将从最终代码中注释掉-它将保留为注释,不会被删除以允许程序编辑器访问//
//使用 UART 来检查值和函数 //
//********* //
void
configureUART (void)
{
//
//启用 GPIO 和 UART 0
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
//
//为 UART 模式配置 UART 引脚
//
ROM_GPIOPinConfigure (GPIO_PA0_U0RX);
ROM_GPIOPinConfigure (GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);
//UARTClockSourceSet (UART0_BASE、UART_CLOCK_SYSTEM);
//
//初始化控制台 I/O 的 UART
//
UARTStdioConfig (0、115200、g_ui32SysClock);
}
//********* //
//此部分包含创建 PWM 函数所需的 PWM 函数 //
//注意:对 SysCtlPWMClockSet (SYSCTL_PWMDIV_1)的任何更改;将需要在上面的数学部分进行更改!!!!!!!!!!! //
//********* //
void
configurePWM (void)
{
uint32_t 节拍;
节拍数= NUMBER_TICKS_Freq();
//
//启用 PWM 使用的 GPIO 外设(PF0、最终为 PF1)
//
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
//
//启用 PWM0
//
SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);
//
//将时钟分频以供 PWM 使用-现在将使用一个
//
SysCtlPWMClockSet (SYSCTL_PWMDIV_1);
//
//解锁引脚
//
HWREG (GPIO_PORTF_BASE + GPIO_LO_LOCK)= GPIO_LOCK_KEY;
HWREG (GPIO_PORTF_BASE + GPIO_O_CR)= 0x01;
//
//为 PWM 配置 GPIO 引脚
//
GPIOPinConfigure (GPIO_PF0_M0PWM0);
GPIOPinConfigure (GPIO_PF1_M0PWM1);
GPIOPinTypePWM (GPIO_PORTF_BASE、GPIO_PIN_0 | GPIO_PIN_1);
//
//配置 PWM
//
PWMGenConfigure (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
//
//设置 PWM 周期
//
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、ceil (tick));
//
//设置占空比
//
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、ceil (tICKs/2));
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、ceil (tICKs/2));
//
//启用 PWM
//
PWMGenEnable (PWM0_BASE、PWM_GEN_0);
PWMOutputInvert (PWM0_BASE、PWM_OUT_1_BIT、TRUE);
PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT | PWM_OUT_1_BIT、TRUE);
}
int
main (void)
{
G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);
configurePWM();
configureUART();
while (1)
{
UARTprintf ("UART 成功\n");
}
}
