- 博客(9)
- 收藏
- 关注
原创 滴答定时器(systick)实现微秒(us),毫秒(ms)延时,延时最长一个小时
【代码】滴答定时器(systick)实现微秒(us),毫秒(ms)延时,延时最长一个小时。
2025-02-24 17:00:32
91
原创 使用串口空闲中断接收数据时,一直进空闲中断
直接使用这个函数(__HAL_UART_CLEAR_FLAG(&huart1,UART_FLAG_IDLE);2.使用专门清除空闲中断的函数:__HAL_UART_CLEAR_IDLEFLAG (&huart1 );经过查阅数据手册,发现该位由软件序列清除,要先读串口状态寄存器,再读串口数据寄存器。首先我检查了自己有没有清除空闲中断标志,我发现自己清楚了,但是貌似没有成功。
2024-11-01 14:15:25
349
原创 STM32如何在整数除以整数时实现四舍五入?
/加上分母的一半,实质就是最终结果加0.5,再取整数。最近刚学习到一种方法就是:给分子(被除数)加上分母的一半。8/3=2.67,给2.5加上0.5,就等于3.16。4.8/3=1.6,给1.6加上0.5,就等于2.1。取整数不就刚好实现了四舍五入嘛。先不考虑C语言中的除法规则,如。
2024-10-23 17:04:59
271
原创 c语言内存泄漏问题
解决方法2:将function1定义为有返回值的函数,返回申请的这块内存的首地址,并在主函数里用一个指针存储起来,在主函数里还能继续使用这块内存。内存泄漏的概念:申请的内存,首地址丢了,找不到了,无法使用,也无法释放,这就是内存泄漏。//接着就可以使用申请的内存。//接着就可以使用申请的内存。解决方法1:谁申请谁释放,在 function1末尾free(p)申请的内存一定别把首地址搞丢了,用完也要记得释放!
2024-10-22 10:58:40
274
原创 用联合体进行数据格式转换(float与uint8_t)
联合体是一种特殊的类,也是一种构造类型的数据结构。在一个“联合体”内能够定义多种不同的数据类型,这些多种不同的数据,共同拥有同一段内存(重点)。nion的成员是共用内存空间的,因此union的成员在内存上的表现形式实际上是同一个东西,这样也为不同数据之间转换提供了方便。如下是一种union定义,通过这个union,可以轻松实现uint64型数据向8个char数组转换。
2024-10-18 16:09:11
409
原创 初始化一个数组a[100],并进行冒泡排序
*冒泡排序的原理是:从左到右,相邻元素进行比较。到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边;第二轮比较后,所有数中第二大的那个数就会浮。以从小到大排序为例,第一轮比较后,所有数中最大的那。
2024-04-14 15:00:47
120
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人