我正在使用 pb6和 Pb7创建 spwm、但现在无论 我执行什么操作、"即使我正在运行空代码或尝试将设置为0"、引脚始终处于高电平、即使我在调试模式下暂停
我找不到3.3V 和引脚之间的任何直接短路
这是我使用的代码
#include
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/pin_map.h"#include "driverlib/pinctl.26、22、22、42
、22、22、22、22、22、22、22、22、22、22、22、22、22、2、7、22、22、22、22、22、22、20、22、22、22、22、22、22、22、
44、47、49、52、54、57、59、61、64、64、66、69、69、69、69、69、76、76、78、80、83、85、88、90、92、97、99、
101、103、106、108、110、113、115、117、119、121、124、126、128、138、132、134、136、138、140、142、144、146、
148,150,152,154,156,158,160,162,164,166,168,169,171,173,175,177,178,180,182,184,185,187,188,190,192,193
195,196,198,199,201,202,204,205,207,208,209,211,212,213,216,217,219,221,222,223,224,225,226,227
228229230,231,232,233,234,235,236,237,237,238,239,240,240,241,242,243,243,244,244,245,246,246
247,247,247,247,248,248,248,248,249,249,249,249,249,255,255,255,249,249,249,249,249,249,249,249,249,249,249,249,249,249,248,248,248,247,248,248,247,
248,248,248,248,247,247,247,246,246,245,245,244,244,243,243,242,242,241,240,239,238,237,237,236,235,234
233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,216,215,213,212,211,208,207,205,204
202,201,199,198,196,195,193,192,190,188,187,185,184,182,188,178,177,175,173,171,169,168,166,164,162,160
158,156,154,152,150,148,146,144,142,140,138,136,134,132,130,128,126,124,121,119,117,115,113,1108,106
103,101,99,97,94,94,92,90,88,853,80,76,76,73,76,76,76,664,61,59,57,52,49,47,427,44,39,34,32,30,
27、24、22、19、17、15、12、10、7、5、2、1};
int x=0、en=true;
long map (long、long、long、 long、long);
void
PWM0IntHandler (void)
{
PWMGenIntClear (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_LOAD);
if (++x>311){x=0;en=!en;}
if (en=true){
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、0);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、MAP (sinus[x]、1、255、0、535));
}
其他
{
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、0);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、MAP (SINUS[x]、1、255、0、535));
}
}
int
main (void)
{
SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHz);
SysCtlPWMClockSet (SYSCTL_PWMDIV_1);
SysCtlPeripheralEnable (SYSCTL_Periph_PWM0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
GPIOPinConfigure (GPIO_PB6_M0PWM0);
GPIOPinConfigure (GPIO_PB7_M0PWM1);
GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_6);
GPIOPinTypePWM (GPIO_PORTB_BASE、GPIO_PIN_7);
PWMGenConfigure (PWM0_BASE、PWM_GEN_0、
PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
//公式:n =(1 / f)* SYSCLK。
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、535);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、64);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_1、66);
PWMOutputInvert (PWM0_BASE、PWM_OUT_0_bit|PWM_OUT_1_BIT、TRUE);
IntMasterEnable();
PWMIntEnable (PWM0_BASE、PWM_INT_GEN_0);
PWMGenIntTrigEnable (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_LOAD);
IntEnable (INT_PWM0_0);
IntEnable (INT_PWM0_1);
PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT | PWM_OUT_1_BIT、TRUE);
PWMGenEnable (PWM0_BASE、PWM_GEN_0);
while (1)
{
}
}
长映射(长 x、长 IN_min、长 IN_max、长 OUT_min、长 OUT_max)
{
return (x - IN_min)*(OUT_max - OUT_min)/(IN_max - IN_min)+ OUT_min;
}
谢谢



