- 博客(12)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 我的项目开发经验分享
我的写作计划安排,评论与投票较多的版块或子项会优先发布。内容是工作这些年沉淀的知识金库。编程语言用的C语言,软硬分层适用不同mcu,主要应用了面向对象思想、指针、函数指针等,适合基础较好的同学。
2023-09-06 09:53:53
1053
18
原创 裸机程序架构-时间片轮询架构
XxxTimeSlice时间片轮询,是一种裸机程序架构。基于外部提供的tick(systick中断或定时器中断),根据注册生成多种时间片(支持0*tick)提供给任务当tick,让多个任务按指定频率依次执行。其核心思想是定时器的分时复用。适合中小型项目的裸机开发,结合状态机可以有效消除程序中不合理的delay阻塞延时。
2024-02-01 17:21:51
1276
原创 XxxSwitchScan_Driver只是C语言多功能按键驱动吗?
XxxSwitchScan_Driver可以简单的看作为一个C语言的按键驱动,使用简单、灵活且解耦,以面向对象思想结合状态机编写,同时适用于裸机与操作系统。最终实现响应事件有:短按/短按抬起/长按/持续长按/长按抬起/连击/单边沿触发。一开始仅为了实现按键驱动。后面把按键结合如高低电平的传感器、开关量的限位等进一步抽象为开关量的输入设备。由此我常会把项目中的开关量的输入设备通过该驱动统一管理。
2024-01-23 13:51:18
1059
原创 延时函数新思路-隐匿的定时器DWT
软件延时不精准?SysTick滴答定时器被占用?定时器资源紧张?还有别的延时方法吗?有请ARM Cortex-M系列特有的隐匿定时器DWT闪亮出场,为阁下解决以上问题!内容利用DWT实现堵塞延时、非堵塞延时、计时功能。
2023-09-26 10:04:35
1440
1
原创 初学者思路-实现独立按键检测(以STM32为例)
本文以初学者角度切入,详细剖析按键检测原理,实现按键短按、短按抬起、首次长按、持续长按次数、长按抬起功能;含完整MDK工程,通过宏修改引脚即可测试,含打印串口初始化与滴答延时初始化。
2023-09-12 08:45:00
2799
原创 手把手教学一文在Keil5创建工程模版(以STM32F103C8T6点灯为例)
手把手搭建STM32F103C8xx点灯的Keil5_MDK工程模版。白嫖工程模版含合理的工程文件夹架构,含keilkill.bat清理MDK工程生成文件的脚本,适合小白也适合弄项目的小伙伴。
2023-09-08 09:38:21
10545
21
原创 C语言带返回值的宏,宏函数使用{}与do{}while(0)的区别
宏函数是在编译时进行文本替换,这样可以提高代码的执行效率,普遍用于调用比较频繁的代码段。但是需要注意一些细节。
2023-08-30 11:53:51
1648
2
原创 浅谈项目开发中的模块化、解耦、封装
模块化是指将功能相关的代码和数据组织成独立的模块,以便于开发的任务分割与安排、独立测试、后期维护以及后续别的项目有相同功能时的可移植,大大缩短开发时间,避免重复造轮子。可以提高代码的可重用性和可测试性,并简化系统的复杂性与提高系统的隐秘性。
2023-08-25 14:23:06
613
5
裸机程序架构-时间片轮询架构源码与使用例程
2024-01-26
C语言多功能按键驱动XxxSwitchScan-Driver
2024-01-23
DWT延时驱动(堵塞延时/非堵塞延时/计时)
2023-09-22
STM32独立按键检测代码
2023-09-09
STM32F103C8xx点灯的Keil5-MDK工程模版
2023-09-07
STM32的函数说明(中文)
2023-09-07
Keil5固件支持包(stm32f1xx/gd32f30x/nxplpc54114/stm32mp1xx)
2023-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人