- 博客(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
原创 双向链表 管理
本文实现了一个双向链表(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
原创 质数判断 查表法和计算法结合提高效率 (不能因式分解)
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
原创 &清零某些位 | (置位)^取反,小数转分数
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
原创 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
原创 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
原创 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
原创 低功耗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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅