经过一下午的加晚上的奋战,终于搞定了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);
我要赚赏金打赏帖 |
|
|---|---|
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
| 【S32K3XX】LIN 通讯模块使用被打赏¥31元 | |
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
我要赚赏金
