经过一下午的加晚上的奋战,终于搞定了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);
我要赚赏金打赏帖 |
|
|---|---|
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
| 【瑞萨BLE/WIFI模块测评】环境搭建被打赏¥32元 | |
| 【瑞萨RA8D1测评】LVGL显示动画被打赏¥30元 | |
| 【瑞萨RA8D1测评】IMU动作识别的数据采集与模型训练被打赏¥33元 | |
| 【S32K3学习整理】时钟系统 ClockOut 功能被打赏¥28元 | |
| 【S32K3学习整理】以太网LoopBack模式功能验证被打赏¥26元 | |
我要赚赏金
