经过一下午的加晚上的奋战,终于搞定了PWM波的调试,说实话之前下午的时候代码就完成了,只是用示波器观察的时候老是显示不出理想的波形,后来知道那些都是干扰杂波,只因我下载后既没有复位也没有断电重启我的板,所以浪费了若此多的宝贵时间,在不经意间断电重启后得到了完美的理想波形。
LM3S811具有1个PWM模块提供3个PWN发生器模块和一个输出控制模块。每个发生器模块右2个PWM输出信号,它们可以单独操作,或者作为带有插入死区延时的一对信号来使用。每个发生器模块还有一个中断输出和一个触发输出。控制模块决定了PWM信号的极性以及哪些信号经过模块到达管脚。
3个发生器模块包含1个16位的减计数器或递增递减计数器,2个比较器,PWM发生器,PWM输出使能,输出机型控制。
3个发生器模块称为Gen0、Gen1和Gen2,6个输出信号称为PWM0、PWM1、PWM2、PWM3、PWM4和PWM5。
本次试验内容:控制PWM发生器输出38KHz的PWM波
实验目的:熟悉PWm发生器的配置,参数的配置:周期、占空比,输出管脚
原代码
// 使能系统时钟 使用PLL,50M
SysCtlClockSet( SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_6MHZ );
SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOB );//使能外设B端口
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); //使能PWM外设 P195
SysCtlPWMClockSet(SYSCTL_PWMDIV_1); //PWM信号时钟 P200
// 初始化PWM2,该PWM驱动PB0
GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_0);
//PWM模式设置 P139
PWMGenConfigure(PWM_BASE, PWM_GEN_1,
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMOutputState(PWM_BASE, PWM_OUT_2_BIT, true); //使能PWM2输出P150
PWMGenPeriodSet(PWM_BASE, PWM_GEN_1, SysCtlClockGet() /38000); //设置PWM发生器1的周期
PWMPulseWidthSet(PWM_BASE, PWM_OUT_2, SysCtlClockGet() /76000);//设置PWM2输出的脉冲宽度
PWMGenEnable(PWM_BASE, PWM_GEN_1);
我要赚赏金打赏帖 |
|
|---|---|
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
| OK1126B-S开发板的脚本编程及应用设计被打赏¥27元 | |
| 5v升压8.4v两节锂电池充电芯片,针对同步和异步的IC测试被打赏¥35元 | |
| 【S32K3XX】S32DS LPI2C 配置失败问题解决被打赏¥22元 | |
| 【S32K3XX】FLASH 的 DID 保护机制被打赏¥19元 | |
| OK1126B-S开发板串口通信及其使用被打赏¥18元 | |
| 【S32K3XX】多核 CORE ID 获取被打赏¥18元 | |
| OK1126B-S开发板的GPIO资源及其使用被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动屏幕(Arduino IDE环境)被打赏¥23元 | |
我要赚赏金
