完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
效果视频演示
串口控制oled灯的开关/亮度 硬件模块 单片机一块 USB转ttl接口一只 手动焊接LED灯两个(分别用于开关和亮度,引脚用排针引出更方便接线) 理论支持 1.串口通信(最常用且最基础的通讯,这里不展开) 2,PWM脉宽调制 脉冲宽度调制脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶 体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。 程序思路 开启串口接收中断,变量保存接受到的数据,数据定义标志位,主函数switch函数走不同的结果 主函数代码 小贴士 本项目使用的串口测试,如需用蓝牙测试,只需要把rx,tx脚连到对应的蓝牙引脚即可 测试可使用商店的串口软件即可 int main(void) { delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 TIM3_PWM_Init(899,0); TIM_SetCompare2(TIM3,1000); LED_Init(); while(1) { switch(flag) { case 0: GPIO_ResetBits(GPIOA,GPIO_Pin_8); printf("offn"); break ; case 1: GPIO_SetBits(GPIOA,GPIO_Pin_8); printf("onn"); break ; case 2: TIM_SetCompare2(TIM3,1000); printf("亮度1n"); break ; case 4: TIM_SetCompare2(TIM3,800); printf("亮度2n"); break; case 5: TIM_SetCompare2(TIM3,300); printf("亮度3n"); break; } } } |
|
|
|
只有小组成员才能发言,加入小组>>
3209 浏览 9 评论
2896 浏览 16 评论
3402 浏览 1 评论
8845 浏览 16 评论
3997 浏览 18 评论
9628浏览 3评论
1006浏览 3评论
521浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
524浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2251浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-2 15:58 , Processed in 1.003939 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号