小星星星球
码龄5年
关注
提问 私信
  • 博客:50,629
    社区:2
    问答:121
    动态:152
    视频:1,490
    52,394
    总访问量
  • 12
    原创
  • 311,222
    排名
  • 7,606
    粉丝
  • 353
    铁粉
  • 学习成就

个人简介:思考找问题源头,行动得问题答案。在下嵌入式软件攻城狮一只, gitee仓库:https://gitee.com/wx_372d4eb42f

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2019-07-17
博客简介:

⭐小星星的博客⭐

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,073
    当月
    45
个人成就
  • 获得273次点赞
  • 内容获得79次评论
  • 获得777次收藏
  • 代码片获得609次分享
创作历程
  • 4篇
    2024年
  • 8篇
    2023年
成就勋章
TA的专栏
  • 我的开源驱动
    3篇
  • 经验分享
    5篇
  • Keil5_MDK
    3篇
  • 我的按键驱动编年史
    2篇
  • C语言面向对象的实战应用
  • C++碎碎念
  • STM32外设从基础到进阶
  • 开发日志
TA的推广
兴趣领域 设置
  • 编程语言
    c++c语言
  • 嵌入式
    单片机stm32mcu物联网iot
  • HarmonyOS
    harmonyos
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

裸机程序架构-时间片轮询架构

XxxTimeSlice时间片轮询,是一种裸机程序架构。基于外部提供的tick(systick中断或定时器中断),根据注册生成多种时间片(支持0*tick)提供给任务当tick,让多个任务按指定频率依次执行。其核心思想是定时器的分时复用。适合中小型项目的裸机开发,结合状态机可以有效消除程序中不合理的delay阻塞延时。
原创
发布博客 2024.02.01 ·
1387 阅读 ·
22 点赞 ·
0 评论 ·
22 收藏

XxxRingBuffer多功能环形缓冲区

C语言实现的非传统的多功能环形缓冲区,满足先进先出(队列)、后进先出(栈)、数据窗口等多种场景需求
原创
发布博客 2024.02.01 ·
866 阅读 ·
20 点赞 ·
0 评论 ·
19 收藏

裸机程序架构-时间片轮询架构源码与使用例程

发布资源 2024.01.26 ·
7z

C语言判断重复字符的问题

答:

compressed[j++] = '0' + count;
这里"j++",意思相当于

compressed[j] = '0' + count;
j = j + 1;

'0' + count,意思是把"count"的值转换成对应字符的ascii码,'0'的ascii码的十六进制值为0x30

img

回答问题 2024.01.23

C语言多功能按键驱动XxxSwitchScan-Driver

发布资源 2024.01.23 ·
7z

Markdown编辑笔记

本文基于VSCode,使用插件编辑/预览/浏览md格式文件,以及基础语法介绍
原创
发布博客 2024.01.23 ·
1012 阅读 ·
22 点赞 ·
0 评论 ·
28 收藏

XxxSwitchScan_Driver只是C语言多功能按键驱动吗?

XxxSwitchScan_Driver可以简单的看作为一个C语言的按键驱动,使用简单、灵活且解耦,以面向对象思想结合状态机编写,同时适用于裸机与操作系统。最终实现响应事件有:短按/短按抬起/长按/持续长按/长按抬起/连击/单边沿触发。一开始仅为了实现按键驱动。后面把按键结合如高低电平的传感器、开关量的限位等进一步抽象为开关量的输入设备。由此我常会把项目中的开关量的输入设备通过该驱动统一管理。
原创
发布博客 2024.01.23 ·
1092 阅读 ·
27 点赞 ·
0 评论 ·
20 收藏

记录第一个1K粉丝,感谢支持

发布动态 2023.11.29

stm32和51单片机是要装两个不同的Keil5吗

答:

32与51用到的是不同的keil版本,而且还要按顺序安装,得先安装51版本再安装32版本。具体有很多教程都有

回答问题 2023.11.20

这个c语言哪里有问题啊

答:

img


宏定义后面多了个";",去掉即可。
建议宏放外面,文件开头的位置

回答问题 2023.11.17

C语言中定义时出现的问题

答:

变量的作用域问题,第30-37行{int a[] = {...};},那么这个a[]数组只能作用于他最外层{},即if{}里或else{}里。
修改建议:把a[]数组的定义放到int main()里的开头或者是定义为全局变量,在if{}else{}里赋值。
提示:直接定义为定义放到int main()里的开头或者全局变量且直接赋值int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};然后把30-37行改为if(0 == i){a[2] = 28};即可

回答问题 2023.11.16

延时函数新思路-隐匿的定时器DWT

软件延时不精准?SysTick滴答定时器被占用?定时器资源紧张?还有别的延时方法吗?有请ARM Cortex-M系列特有的隐匿定时器DWT闪亮出场,为阁下解决以上问题!内容利用DWT实现堵塞延时、非堵塞延时、计时功能。
原创
发布博客 2023.09.26 ·
1811 阅读 ·
18 点赞 ·
1 评论 ·
45 收藏

闪烁灯

发布视频 2023.09.25

独立按键该如何跳出循环进入下一个循环

答:

你好,可以参考这篇文章http://t.csdn.cn/IoOBk

回答问题 2023.09.25

DWT延时驱动(堵塞延时/非堵塞延时/计时)

发布资源 2023.09.22 ·
7z

c语言中for循环使用逗号运算符,为什么fargo一下子就从0变成了1000,不是应该step=2时,fargo=0+2=2吗?

答:

for循环多条语句时,要用括号

for (step = 2, fargo = 0; fargo < 1000; step *2)
{
  fargo += step;
  printf("%d %d",step, fargo);
}
回答问题 2023.09.22

char 字符型是怎么搞啊

答:

%d:打印有符号十进制整数。

%u:打印无符号十进制整数。

%f:打印浮点数,可指定小数点后的位数。

%c:打印单个字符。

%s:打印字符串。

%p:打印指针地址。

%x:打印无符号十六进制整数,小写字母。

%X:打印无符号十六进制整数,大写字母。

%o:打印无符号八进制整数。

%%:打印一个百分号。

例子:
int num = 18;
float pi = 3.14159;
char ch = 'A';
char name[] = "BB";

printf("num: %d\n", num);
printf("pi: %.2f\n", pi);
printf("ch: %c\n", ch);
printf("name: %s\n", name);

回答问题 2023.09.22

PID算法的输出结果如何转换成pwm

答:

通过PID的测试数据,将PID输出映射到合适的范围。PID算法的输出通常是一个连续的数值,将其映射到PWM占空比的范围内。例如,假设PID输出范围为[-100, 100],而PWM占空比范围为[0, 100],则可以通过线性映射将PID输出映射到PWM占空比范围内

回答问题 2023.09.22

为啥不是8.3而是8.29999

答:

这个由于是浮点数,计数器会存在误差,是无法避免的

回答问题 2023.09.21

循环中变量不存在时怎么只输出一个NO

答:

在for里添加
if(k不存在)
{
  printf("NO");
  break;    //直接退出整个for循环
}


或

if(k不存在)
{
  printf("NO");
  continue;    //只退出本次for循环
}
回答问题 2023.09.21
加载更多