完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的产品要用到PWM,我编写以下程序:
void PWM_Init() [ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); /* 使能PWM输出所在GPIO */ SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); /* 使能PWM模块 */ SysCtlPWMClockSet(SYSCTL_PWMDIV_1); /* PWM时钟配置:不分频 */ GPIOPinConfigure(GPIO_PF0_PWM); GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0); /* PF0配置为PWM功能 D7 */ GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_1); /* PF1配置为PWM功能 D6 */ GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2); /* PF2配置为PWM功能 D5 */ GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_3); /* PF3配置为PWM功能 D4 */ PWMGenConfigure(PWM_BASE, PWM_GEN_3, /* 配置PWM发生器1:加减计数 */ PWM_GEN_MODE_DOWN ); PWMGenPeriodSet(PWM_BASE, PWM_GEN_3, 6000); /* 设置PWM发生器1的周期 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_4, 4200); /* 设置PWM4输出的脉冲宽度 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_5, 1800); /* 设置PWM5输出的脉冲宽度 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_6, 1000); /* 设置PWM6输出的脉冲宽度 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_7, 500); /* 设置PWM7输出的脉冲宽度 */ PWMOutputState(PWM_BASE, (PWM_OUT_4_BIT | PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT), true); /* 使能PWM输出 */ PWMGenEnable(PWM_BASE, PWM_GEN_3); /* 使能PWM发生器1, */ /* 开始产生PWM方波 */ // while(1); ] 在编译的时候这句编译不过. GPIOPinConfigure(GPIO_PF0_PWM);提示没有定义.请问GPIO_PF0_PWM是在哪个文件定义的呢?我加的头文件有: #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_pwm.h" #include "inc/hw_sysctl.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/interrupt.h" #include "driverlib/pwm.h" #include "led-test.h" #include "driverlib/gpio.h" 要怎么解决?谢谢!!! |
|
相关推荐
6 个讨论
|
|
void PWM_Init() [ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); /* 使能PWM输出所在GPIO */ SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); /* 使能PWM模块 */ SysCtlPWMClockSet(SYSCTL_PWMDIV_1); /* PWM时钟配置:不分频 */ GPIOPinConfigure(GPIO_PF3_M1PWM7); GPIOPinConfigure(GPIO_PF2_M1PWM6); GPIOPinConfigure(GPIO_PF1_M1PWM5); GPIOPinConfigure(GPIO_PF0_M1PWM4); GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_0); /* PF0配置为PWM功能 D7 */ GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_1); /* PF1配置为PWM功能 D6 */ GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2); /* PF2配置为PWM功能 D5 */ GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_3); /* PF3配置为PWM功能 D4 */ PWMGenConfigure(PWM_BASE, PWM_GEN_3, /* 配置PWM发生器1:加减计数 */ PWM_GEN_MODE_DOWN ); PWMGenPeriodSet(PWM_BASE, PWM_GEN_3, 6000); /* 设置PWM发生器1的周期 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_4, 4200); /* 设置PWM4输出的脉冲宽度 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_5, 1800); /* 设置PWM5输出的脉冲宽度 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_6, 1000); /* 设置PWM6输出的脉冲宽度 */ PWMPulseWidthSet(PWM_BASE, PWM_OUT_7, 500); /* 设置PWM7输出的脉冲宽度 */ PWMOutputState(PWM_BASE, (PWM_OUT_4_BIT | PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT), true); /* 使能PWM输出 */ PWMGenEnable(PWM_BASE, PWM_GEN_3); /* 使能PWM发生器1, */ /* 开始产生PWM方波 */ while(1); ] 奇怪,为什么PWM没有输出呢?能帮我看看配置有没有问题吗? |
|
|
|
|
|
Jazzye 发表于 2020-4-10 09:37 你可以将下面的代码加上试下,PF0默认情况下是不能作为常规外设功能使用,需要将其解锁并设置为相关外设使用。 //配置PF0为GPIO功能,PF0默认为NMI功能; HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD; HWREG(GPIO_PORTF_BASE + GPIO_O_CR) = 0x01; HWREG(GPIO_PORTF_BASE + GPIO_O_AFSEL) &= 0xfe; HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0; |
|
|
|
|
|
kangt 发表于 2020-4-10 10:01 问题解决! 把SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); 改为SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1); 后面所有PWM_BASE 改为PWM1_BASE. 还是要谢谢技术工程师的帮助. |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
769 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1978 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3726 浏览 4 评论
5090 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1793 浏览 1 评论
CC3100BOOST使用CC3200lunchXL进行烧录
771浏览 2评论
822浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
798浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1273浏览 1评论
1864浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-7-4 15:48 , Processed in 1.004969 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191