完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在开发一种STM32L4器件,它大部分时间处于STOP2模式,在中断时唤醒,做一些工作(在无线电上发送数据)并再次休眠。 我想用LED添加一些指示,但我不希望这个指示是侵入性的。对于表示设备已开启的罕见闪烁,我使用LPtiM1,效果很好。LED在定时器的输出引脚上闪烁,器件不必唤醒等。现在我想在GPIO引脚发生中断时闪烁另一个LED。在尝试主要工作之前,我试图将其打开,并在转到STOP2之前将其关闭,但事情发生得如此之快,以至于几乎看不到眨眼。我希望LED开启约100ms。添加延迟不是我想要做的,因为GPIO或无线电可能发生中断,并且添加某些关键部分只是为了使LED闪烁听起来有些奇怪。 我到目前为止最好的想法是使用带有几个MOSFET的模拟延迟(仿真表明,只要更短的脉冲到达二极管,它应该在LED上大约100ms脉冲),但可能有一种方法可以在软件中实现吗?可能有一些在低功耗STM32器件上实现“背景”指示的最佳实践?
|
|
相关推荐
4个回答
|
|
使用1ms中断点亮LED。设置一个计数器,用于点亮LED的中断次数(200例如200ms)。当计数器> 0导通时,每次中断都会使计数器递减。
|
|
|
|
中断在STOP模式下不可用我猜,但可能我不应该输入,直到指示完成如此while(1) { if(some_work) { do_work(); } if (can_sleep) { enter_stop2(); } }
|
|
|
|
你的微控制器是否有多个引脚可以将LPTIM输出多路复用到?
|
|
|
|
LPUART1在STOP2中可用,你可以使用TX输出发送脉冲。在32768 Hz时钟频率下,可以将其设置为低至90波特。发送一个0xFF字节会使TX输出降低9倍的位时间(起始位+8个数据位)。可以反转LPUART->CR2寄存器中的TX输出,也可以在TX和V DD之间连接LED 。
当然,如果你在睡眠时在LPUART1上接收数据,它将无法工作,因为波特率是错误的。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:52 , Processed in 0.573825 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号