【电赛备考】基于STM32控制的可调PWM输出+LCD显示

情况分析

大三老油条一枚,大一时赶上19年国赛申请留校一月自学(划水)开赛以后就和队友参观了一下其他队伍准备的情况就愉快的回家了。(材料都没买),因为疫情的原因大二的省赛推迟到了大三。趁着考研压力还不是特别大,冲一把。

水平一般,之前学51花了不少时间。用51自己从0开始做了一个避障和蓝牙遥控的智(zhi)能(zhang)小车,学习51也算是告一段落。不得不说,学习51的经历对于上手stm32还是帮助很大的。花了大概十天左右时间看完IO、串口、定时器、中断和PWM输出的内容以后,正好今年的材料清单有小车就打算加个LCD屏显结合一下。

踩坑分享

学习32例程的过程中也是遇到些问题,大部分都挺低级的,简单一提提醒自己。
1.配置IO口时钟初始化语句clockcmd用错(有好几个看着很像的就用错了)
2.关于IO口模式配置的问题,通常情况下作为输出口都是默认推挽输出,比如第一个跑马灯实验,但是如果PWM输出你用最小系统板(本人用C8T6)没法映射到某个端口,需要外接杜邦线连接IO口和PWM输出口,此时IO口应该设置为浮空才有输入。具体参考手册对应芯片的引脚图和中文手册
在这里插入图片描述
3.注意IO口作为外设使用需要开启复用
4.外部中断的问题,51和stm32区别还是挺大的。我的PWM调整是通过按键进中断实现的,调整按键记得修改中断源和中断服务线。
在这里插入图片描述
不再一一列举,犯过类似错误的应该都懂。

效果图

在这里插入图片描述
灯闪烁的问题后来发现是定时器分频系数太大,频率偏低,改一下效果挺不错。(图为改之前)

代码

#include "delay.h"
#include  "sys.h"
#include "led.h"
#include "key.h"
#include "pwm.h"
#include "exit_x.h"
#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"
u16 speed = 500;
 int main(void)
 {		

// 	u16 led0pwmval=0;
//	u8 dir=1;	
		delay_init();
	 	LED_Init();
	 	KEY_Init();
	  Exit_Init();
	LCD_Init();//LCD初始化
	SysTick_CLKSourceConfig(1000);
	LCD_Fill(0,0,LCD_W,LCD_H,BLACK);	 
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
 	PWM4_Init(999,7199);	 //不分频。PWM频率=72000000/900=80Khz  72000000/7200=10Khz  1000/10K=0.1s
   	while(1)
	{
 		delay_ms(10);	 
//		if(dir)led0pwmval++;
//		else led0pwmval--;

// 		if(led0pwmval>speed)dir=0;
//		if(led0pwmval==0)dir=1;										 
			TIM_SetCompare1(TIM4,speed);
		LCD_ShowChinese(0,0,"调速监控显示",WHITE,BLACK,16,0);
		LCD_ShowString(0,30,"SPEED:",WHITE,BLACK,16,0);
		LCD_ShowIntNum(48,30,speed/10,3,WHITE,BLACK,16);
		LCD_ShowPicture(65,80,40,40,gImage_1);
	}	 
 }
 

下载链接:基于STM32控制的可调PWM输出+LCD显示

有需要的自取或评论留下邮箱(可能回复会慢)。

欢迎批评指正,共同进步!

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值