- 博客(8)
- 收藏
- 关注
原创 Keil版本:C51和ARM注意事项
同事在打开GD32例程时遇到了默认使用C51版本Keil打开GD工程的问题,他还将51和ARM安装在了同一目录(同一个UV4),只能重新安装Keil解决。所以在安装时最好将51和ARM分开安装在不同文件夹(我把51安装在了32的安装目录Keil5_ARM中的C51文件夹,其实也不是很符合逻辑)最好是D:/Keil_51/UV4和D:/Keil_32/UV4,这样。
2025-06-09 16:02:53
146
原创 RTOS学习记录
本文记录了使用STM32CubeMX创建RTOS工程的过程。首先配置时钟树时遇到PLLQ无法设置问题,需手动修改代码实现USB时钟48MHz。重点讨论了RTOS环境下的线程安全配置:启用多线程支持可确保printf/malloc等库函数安全使用,并解释了这些函数在多线程中不安全的原因——共享全局资源可能引发数据错乱。最后解决了HAL库与FreeRTOS共享SysTick导致的问题,将HAL时基改为TIM7,并修复了因中文路径导致的编译错误。
2025-06-09 10:06:23
875
原创 时间片轮询系统模板
原理很简单:用一个定时器每隔 1ms (有时更低,通过累加生成最低1ms,这个自由度较高随意设定)产生一次中断,在中断里累加时间,到了设定的间隔(比如10ms、100ms)就设置一个“标志”;主循环里不停检查这些标志,谁到了时间就执行谁的任务。现在因为职业发展的考虑,准备更进一步学习,也借这个机会把之前的项目和技能梳理一下,心里更有底,也方便接下来的学习和提升。目前写的项目都是用该时间片轮询系统,项目体量较小,还用不上RTOS,也是准备学习RTOS了,把这个时间片轮询整理一下。
2025-05-23 12:47:14
180
原创 Vscode使用_问题&解决
使用插件打开Keil工程时,可以发现vsc工作区发生了变化,从整个文件夹缩小至keil工程文件夹"Project",此时我们不在该文件夹的程序文件不在工作区内,vsc无法搜索,重新拖入整个"MYRTOS"项目文件夹至vsc工作区后u,可进行vsc全盘搜索。
2025-01-18 09:33:52
218
原创 一个典型的嵌入式系统中使用非阻塞串口传输时可能出现的问题
激光测距中的串口传输,LogPrintfSmart函数对传输数据进行处理后通过HAL_UART_Transmit_IT串口发出,串口发送函数在串口结构体中储存需要发送的首地址和位数,此时已经退出LogPrintfSmart函数,发送数组的内容可能被更改,更改后串口根据地址进行发送,数据会错误。函数返回后,数据缓冲区的内容被修改,而串口传输还未完成,那么串口传输的内容就可能会错误。函数会立即返回,而实际的数据传输是在后台由中断或 DMA 完成的。函数发送数据时,数据传输是异步进行的。
2024-08-29 10:36:19
427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人