本文想实现GPIO retain功能,即系统掉电之后,GPIO状态被保存,下次上电还能保持上次状态。 具体思想可参考ESP32的这篇文章:ESP32 Retain the Last GPIO State After a Reset (microcontrollerslab.com) 具体实现方法为,用flash保存GPIO的状态,并在系统启动时根据flash中读取的数据设置GPIO的状态。 因为板卡只有内部512K flash, 使用demo程序只用了很少一部分,可以把内部flash的一部分拿出来供GPIO状态保存使用。在ld文件中开辟出一块空间 FLASH_DATA: 定义userdat在数据保存区。 系统启动时读取数据,并保存到ram 当LED状态改变时,记录其状态并保存到flash: 这里HAL_FLASH_Program写入失败,还需要进一步调试。今天先到这里了,内部flash写入的功能后面继续调一调,因该是HAL层函数使用哪里不对。 另外吐槽一下, STM32H533的官方bsp竟然么看到Free RTOS支持,只有ThreadX, 。如果使用实时操作系统的话,还需要对threadx加强学习了解。 |
STM32H503生成带dead time的互补PWM
实战经验 | STM32H5 USBD Classic驱动 CDC移植
NUCLEO-H563ZI刷入Micropython固件并点亮LED灯
基于STM32H5的DA之初体验经验分享(带 Trust Zone)
【免费申请】高性能和低成本双Buff加持的NUCLEO H533RE,等你来!
【NUCLEO-H533RE评测】使用双存储区Flash 在不关闭系统的状态下,实现OTA
【NUCLEO-H533RE评测】高性能-全频,硬件加速在电机控制相关应用的速度对比。
【NUCLEO-H533RE评测】HASH对比测试
【NUCLEO H533RE评测分享】高性能和低成本双Buff加持的NUCLEO H533RE
【NUCLEO-H533RE评测】+加载OLED显示部件
仔细查找了下,Free RTOS还是有的,只是没有ThreadX好找,在Middleware and software packs-->X-CUBE-FREERTOS下面选择和配置