完善资料让更多小伙伴认识你,还能领取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. 还是要谢谢技术工程师的帮助. |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
696 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
605 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1065 浏览 1 评论
760 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
530 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
171浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
133浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
130浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
126浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
64浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 15:02 , Processed in 1.008602 second(s), Total 73, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号