不知道发在C吧合不合适,但还是请教一下各位大佬
c吧
全部回复
仅看楼主
level 1
剑皇Glad 楼主
求教各位大佬,题目是:
下位机通过STM32完成DHT11温湿度采集程序,并通过串口将温湿度数据每1s发送一次至上位机中;下位机接收上位机通过串口发送的灯开/关命令实现LED呼吸灯效果(开灯命令)和LED熄灭(关灯命令)的操作。
我现在温度采集搞定了,写在main函数while循环里了,然后打算用void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)这个函数接收串口数据,0xff开灯,0x00关灯,在里面写了pwm循环的呼吸灯,然后发现能开灯不能关灯,开灯之后就在循环里出不来了,串口接收的新数据没写到缓存数组里面,不知道改怎么改了,求各位大佬指导指导我思路。
2024年05月07日 14点05分 1
level 5
flag是什么类型
2024年08月17日 13点08分 2
level 9
3
2024年09月19日 02点09分 5
level 1
[#list/path=%2 F? cuid=baidutiebaappef6 c 6cc3-33e 7-47f 3-93eb-907f[#list/path=%2 F? cuid=baidutiebaappef6 c 6cc3-33e 7-47f 3-93eb-907fdf36048 1&cuid_galaxy2=6995AA576AA9FOEDCEO3340086D18C20 V 3 T 3 E 7NFN&cuid_gid=Xtamp=1610110063569&_ client_version=12.2.8.1&nohead=1]
2024年09月23日 00点09分 6
level 1
首先我没看具体实现,假设你的led代码是
正确的
,那么你需要把他单独写成一个函数,并且在主循环里面判断标志位,其次是你把这种耗时操作全写在了串口接收函数中,这也算是一种中断,中断里面不能写耗时操作,卡死也是没有意外的,原理就是你的串口中断会阻塞所有优先级低于串口中断优先级的操作,系统没办法执行这些任务,你应该在rx里面修改灯的开关标志位并且直接返回,
2024年11月06日 04点11分 7
1