摘要:
在开发WPF应用程序时,UI线程不做高负载的工作,需要交给其他工作者线程去干。当工作者线程干完活得到一个结果后需要发送给UI线程进行展示,那最好的方法就是使用委托机制了。如果你不信邪,偏要在工作者线程里面调用控件去直接更新,这除了说明你对UI绘制的流程不了解之外,还说明你很固执。不仅仅是WPF这样, 阅读全文
摘要:
在bat脚本中使用for循环处理 ::获取日期时间 set dt=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2% :: 分割字符串并逐个处理 :loop set string=X,Y,Z for /F "toke 阅读全文
摘要:
活用数组定义 // build util #define BUILD_ASSERT(condition) ((void)sizeof(char[1 - 2*!(condition)])) struct some_type { uint32_t buffer[2]; }; #define PROTOC 阅读全文
摘要:
在使用cortex芯片打印日志的时候,常用的方式是使用串口。现记录一种使用RTT的方式打印日志(需要去J-Link Debug Probes by SEGGER – the Embedded Experts下载并安装J-Link工具)。 RTT使用的是SWDIO、SWCLK两线接口,与J-Link下 阅读全文
摘要:
在python中需要等待用户输入,并在等待超时后之后直接结束等待。 使用系统的input函数可以等待,但是无法超时,于是想出一个超时结束的法子: 使用一个线程来执行input,并将线程join到主线程实现超时,当超时之后,模拟键盘输入enter键,令input得到一个退出信号而结束。 参考代码如下: 阅读全文
摘要:
STM32的bootloader使用记录。 阅读全文
摘要:
MTK功能机平台模拟器上添加参考圆 阅读全文
摘要:
STM32主控利用PWM播放音乐 阅读全文
摘要:
在MDK开发环境下,对于某些无法被更改的函数,我们需要更改这些函数执行前后的逻辑,偏偏又无法更改到调用这些函数并已经被封装的代码,这真是让人一筹莫展。 幸好MDK给我们留了一个后门,让我们充分使用“$Sub$$”和“$Super$$”来完成这个目标。 比如某个函数 extern void foo(v 阅读全文
摘要:
慢慢记录,不断更新。 控制printf输出指定个数的字符 printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个*代替那个常量,然后在后面提供变量给* void dump_received_string(char *buffer, int length) { pri 阅读全文