自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 SSD1331-OLED驱动

本文基于PY32F030微控制器,实现对UG-9664HDDAG01(0.95",96×64 RGB OLED)的驱动,采用SSD1331Z芯片与SPI1接口通信。通过配置GPIO引脚(SCK/PA1、SDIN/PA2、CS/PA4、DC/PA3、RES/PA5、VPP_EN/PA12),完成OLED初始化、显示控制及图形绘制功能。程序包含清屏、画点、画线、填充矩形及中文字符显示等操作,支持RGB565色彩模式,适用于嵌入式系统中轻量级图形界面应用。

2026-11-03 10:44:30 43

原创 可用在中断中浮点数打印类似printf

/ 调用你工程的串口发送单字符函数。// 调用液晶屏幕字符输出函数。//适合前导零补齐,或空格右对齐。// 统一字符输出入口。

2026-07-04 12:49:38 201

原创 动态内存管理

define MEMORY_SIZE (BLOCK_SIZE * POOL_SIZE) // 总内存大小不能超出物理 空间!#define BLOCK_SIZE 4//32/2 // 内存块大小(字节)#define POOL_SIZE 2//4 // 内存池中块的数量。// // 使用内存(例如存储传感器数据)

2026-02-27 20:18:40 876

原创 jump_to_app

define OTA_CODE_START_ADD (0x08007800) /* app区域储存的首地址 keil魔术棒IORM1定义的STARTAddress*//*不能在中断中跳转:无论在Bootloader跳转到app还是在app跳转到Bootloader时,都不能在中断中进行跳转,否则跳转后app程序仍处中断状态,/* 跳转到应用程序 */

2026-02-25 18:02:38 181

原创 链表 任务轮询

【代码】链表 任务轮询。

2026-02-12 18:12:22 116

原创 双向链表 管理

本文实现了一个双向链表(dlist)的基本操作库。主要内容包括:1) 链表初始化(dlist_init);2) 节点插入(dlist_add/dlist_add_head/dlist_add_tail);3) 节点删除(dlist_del);4) 链表遍历(dlist_foreach)及回调处理函数;5) 获取链表位置的相关函数(dlist_begin_get/dlist_next_get等)。链表节点采用void*指针设计,节省空间且使用时可强制转换。通过定义dlist_node_process_t回调函

2026-02-12 11:19:49 239

原创 拷贝 防memcpy覆盖数据错乱,

/ d.........d+n //反向 *(--d)=*(--s)// s................s+n //正向 *d++ = *s++;//B: d.........d+n //正向 *d++ = *s++;

2026-02-04 15:29:24 322

原创 memmove 优化插入 排序

i += gap) { //对步长为gap的元素进行直插排序,当gap为1时,就是直插排序。gap /= 2) { // 步长初始化为数组长度的一半,每次遍历后步长减半。//将在a[i]前且比temp的值大的元素向后移动一位。// 位运算优化除法。//j初始化为i的前一个元素(与i相差gap长度)// 需要移动的元素数量。// 先处理起始不对齐的字节(按 byte 拷贝直到对齐)//备份a[i]的值。// 优化1:精确查找插入位置。// 处理剩余的尾部字节。

2026-01-22 09:35:44 302

原创 在 C# 中,可以通过多种方式启动外部 EXE 程序。以下是三种常用方法的实现和说明

/ 替换为实际路径。// 替换为实际路径。// 替换为实际路径。适用于需要通过 Shell 执行文件(如打开文件、目录等)的场景。这是最常用的方法,适用于大多数场景。可选择等待程序退出或捕获其输出。

2026-01-17 13:51:34 376

原创 030定时器容易卡住问题

if((key_press_continuous_cnt %(1000/basems))==0 &&key_long_lock==0) //长按事件。//sys_time;KEY_PRESS_TRIPLE, //三连击。KEY_PRESS_FOUR, //四击。KEY_PRESS_FIVE, //五击。KEY_PRESS_SINGLE, //单机。

2025-11-13 09:00:00 839

原创 RGB三色呼吸灯 跑马

{GPIO_PIN_2,GPIO_PIN_0, GPIO_PIN_1, }, // 灯1引脚 R G B。

2025-09-28 20:54:26 898

原创 质数判断 查表法和计算法结合提高效率 (不能因式分解)

i += 2) { // 跳过偶数。i += 6) { // 从5开始,步长为6。// 0-100(25个)//901-1000(14个)//101-200(21个)//201-300(16个)//301-400(16个)//401-500(17个)//501-600(14个)

2025-09-28 16:31:25 974

原创 哈希表 键值对查表

/ 等价于 (hash<<5)+hash。// 手动释放哈希表。// 手动定义哈希表节点结构。// 手动初始化数组。// 手动定义哈希表结构。// C语言风格哈希表。// 手动实现哈希函数。// 手动实现初始化。

2025-09-28 16:29:30 437

原创 systick 24位自减 精确延时

【代码】systick 24位自减 精确延时。

2025-09-26 15:04:06 168

原创 &清零某些位 | (置位)^取反,小数转分数

define is_power_of_two(x) ((x>=1)&& x&(x-1)==0) //2得幂 power(2,x) 0x02/0x4/0x8/16/32/64/128/256。} //交换变量 利用a^a=0;#define is_odd(x) (x&1==1) //奇数末尾位1 //奇偶。} // 特殊情况处理:小数部分为0。

2025-09-01 20:54:14 213

原创 pycharm python pyqt5

dict_str = str(self.Com_Dict[self.s1__box_2.currentText()]) # 获取串口信息转换字符串。Vout_TempEdit_set = int(self.lineEdit_TempEdit_set.text()) # 设置输出温度校正。Vout_Temp_set = int(self.lineEdit_Temp_set.text()) # 设置输出温度。# self.data_text_clear() # 调用清理函数。

2025-01-16 15:46:46 1218

原创 上位机通讯 结构体发送和解析

所以只需要在includes中加末尾#pragmapack(),注意协议双方都需要取消字节对齐。#pragmapack()//取消结构体对齐。//按1字节进行对齐即:不行进行对齐。

2025-01-14 18:47:06 298

原创 替代开方运算sqrt

{ //整数开方 >牛顿叠代 POW(N,2)==M N=M^0.5;8位mcu 开方 math.h 容易超空间;{ //sqrtf ROM空间不够!

2025-01-02 16:09:40 449

原创 jpeg 压缩算法1

【代码】jpeg 压缩算法1。

2024-12-30 20:22:28 211

原创 rtx cpu使用率

/0~100for (;;) {you may////#endif#endif#endif#endif#endif#endif#endif#endif// #endif//#endif。

2024-08-26 21:21:57 743

原创 arm利用systick 微妙精确us延时

if(nus<0x55555555) //nus<0x5555 5555 0xFFFFFFFF/3 14.3亿。// SYSTICK是一个递减的计数器。//时间超过/等于要延迟的时间,则退出.// delay_osSchedLock();// 阻止OS调度,防止打断us延时。// 刚进入时的计数器值。* 形 参: x,延时时间,不精确。

2024-08-26 17:33:54 522

原创 51内核多线程,os任务调度

define OS_TASK_STACK_SIZE (2+13+2*3)//存放断点2B,中断函数可能压栈13B,子程序每嵌套一层2B。//os_delay()结束后跳转os_idle()if(os_task[i].delay==0)//如果有任务延时时间到,则跳转至相应任务。#define data //c51栈要放在dataq区~data/idada/pdata/xdata。//私有堆栈指针指向私有堆栈。

2024-08-19 15:03:10 786

原创 双向冒泡法,可以只求最大最小值

运行一次获取最大最小值。

2024-05-05 13:17:30 447

原创 插入法(直接/二分/希尔)

【代码】稳定排序 双向冒泡 法, 有序数组二分插入法,

2024-05-05 12:53:42 336

原创 io口扫描数码管驱动,无锁存器,扫描带呼吸灯

【代码】数码管驱动。

2024-04-28 19:34:47 378

原创 pwm 输出

/att // 时钟频率:Ftime3 = 48M/(time_divide + 1)/PWM_PERIOD = 48M/(47+1) = 1000khz。//att // 时钟频率:Ftime3 = 48M/(time_divide + 1)/PWM_PERIOD = 48M/(95+1) = 500。//att // 时钟频率:Ftime3 = 48M/(time_divide + 1)/PWM_PERIOD = 48M/(1+1) = 24000khz。//att //PWM周期 = 4ms。

2024-04-02 15:18:15 556 2

原创 * JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.

* JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.

2024-03-12 14:10:56 926

原创 RTC wake sotp

/增加避免 复位脚引起初始化不通过!

2024-01-11 13:40:05 1082

原创 DMA SPI/EXMC 刷屏

dma_flag_get(DMA0,DMA_CH1, DMA_FLAG_FTF) ) //卡死?while(len>0)//len%50000)//分包 //bug?

2024-01-11 13:38:11 734

原创 gd32 EXMC 初始化

void exmc_lcd_init(void){ exmc_norsram_parameter_struct lcd_init_struct; exmc_norsram_timing_parameter_struct lcd_timing_init_struct; /* EXMC clock enable */ rcu_periph_clock_enable(RCU_EXMC); /* GPIO clock enable */ rcu_periph_clock

2023-12-27 18:32:44 1082

原创 gd32 exmc 连接 mcu 8080TFT 驱动(8pin/16pin)ST7789,40帧每秒240*320;

define LCD_WR_DATA(value) ((*(__IO uint16_t*)(BANK0_LCD_D)) = ((uint16_t)(value))) //写数据寄存器 16根数据线。#define LCD_WR_DATA(value) ((*(__IO uint8_t*)(BANK0_LCD_D)) = ((uint8_t)(value))) //写数据寄存器 8根数据线。

2023-12-27 18:30:31 2539

原创 lcd或数码管 显示浮点数 3.1415926

uint8_t floar2Str(float fnum,uint8_t floatNum,uint8_t *out,uint8_t out_len)//浮点转字符串。浮点数字符串 sprintf(buffer,"%-10.5f",fnum);out_len: 输出字符串buffer长度。*out : 输出字符串buffer。floatNum: 要显示的小数点数量。入口数据:fnum:浮点数。

2023-12-26 16:37:04 964

原创 keil5(MDK)黑色背景色风格

1、常规的改法:在MDK菜单栏中选择 编辑->配置->Color & Fonts,如下界面:可以在以上界面配置对应的选项更改代码编辑区数字(number)、关键字(keyword)、字符串(string)等的颜色。最终设置的结果会保存在MDK的安装位置的UV4文件夹下名为global.prop的文件中。2、如果想省事,可以直接找现成的配置文件来直接替换C:\Keil_v5\UV4\global.prop文件夹下的global.prop文件,可以用记事本打开该文件,复制下面我的

2023-12-22 11:00:03 6721 2

原创 小数转分数

MessageBox.Show(err.ToString(), "系统提示");//最大公约数 fraction。

2023-12-18 16:34:55 462

原创 C语言实现BMP图像处理(任意角度旋转)

printf("请输入需要旋转的角度: ");printf("文件打开失败\n");

2023-12-16 14:59:16 1354

原创 低功耗RTC 定时器唤醒stop模式,

/仅保留秒秒闹钟, RTC_AlarmMask_Seconds=RTC_AlarmMask_All-(RTC_AlarmMask_Minutes+RTC_AlarmMask_Hours+RTC_AlarmMask_DateWeekDay)////1秒后唤醒 RTC_IRQHandler~RTC_TimeStruct.RTC_Seconds = 0;

2023-11-29 10:50:09 1577

原创 jlink RTT 替代串口及JLINK_SCOPE示波器详细使用教程

项目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT组件,则会非常方便。

2023-11-17 17:08:01 1201

原创 背景护眼设置RGB()

护眼色的rgb值需要根据使用环境选择,因为护眼色有绿豆沙、银河白、杏仁黄、秋叶褐、胭脂红、海天蓝、葛巾紫、极光灰、青草绿等色彩,常用护眼色为绿豆沙,具体RGB值为199, 237, 204。1、绿豆沙RGB值(199, 237, 204)2、银河白RGB值(255, 255, 255)4、秋叶褐RGB值(255, 242, 226)6、海天蓝RGB值(220, 226, 241)8、极光灰RGB值(234, 234, 239)9、青草绿RGB值(227, 237, 205)

2023-11-08 09:56:55 6001

原创 断码led驱动

7个最多点亮42个,8pin对应56led,9pin~72个灯;//当 I/O 从输出转换为输入时,要等待几个指令周期的时间,以便 I/O 口状态稳定。K1,K2,K3,K4,K5,K6,NC,//其他指示比如充电符号,功能挡位。A1,B1,C1,D1,E1,F1,G1,//数码管1。A2,B2,C2,D2,E2,F2,G2,//数码管2。A3,B3,C3,D3,E3,F3,G3,//数码管3。A4,B4,C4,D4,E4,F4,G4,//数码管4。G1,G2,G3,G4,G5,G6,NC,//电池电量。

2023-11-06 09:32:23 328

原创 在线电路仿真软件 带多路示波器,信号源

https://www.falstad.com/circuit/circuitjs.html

2023-11-02 13:38:00 2378

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除