0%

提到在控制台输出彩色文字,大家都会想到使用“ANSI转义序列”(ESC \x1b \033

但自带的 cmd、Powershell 等终端并不能直接识别这样的序列,而是将其作为普通字符输出。

在此,本文给出了一种解决方案——虚拟终端序列。

为C语言控制台程序开启该特性后,即可完美实现彩色输出。

阅读全文 »

Win32 编程调试过程中,常常有分析 API 调用失败时返回码的需求。

我们经常使用 GetLastError() 函数获取最近一次的错误码,该函数返回的是一个 DWORD 值。

本文提到的工具/资源即可方便地将 Error_Code 转换为详细的错误描述信息。

阅读全文 »

graph LR
    ida1[手机模拟卡片]
    ida2[仅含UID的空卡]
    idb1[读卡器读取原卡]
    idb2[完整卡片数据]
    idc1["数据写入(63扇区)"]
    idc2[得到新卡]
    ida1 -- 复制UID ---> ida2 --- idc1
    idb1 -- 解密 ---> idb2 --- idc1
    idc1 --> idc2

此方法可能可以省去一张空白卡。

注:此文仅作备忘记录。

阅读全文 »

众所周知,在“全国大学生电子设计竞赛培训网”通过每日签到可以领取“赫兹币”,用于兑换礼品等等。

作为白嫖党,肯定不能错过啦(呃,虽然只靠签到集币会很慢)。

自己动手,丰衣足食。这不,博主自己搓了一个自动签到小助手。

阅读全文 »

在编写单片机程序进行 ADC 采样并配合 DMA 传输时,发现单片机仅在启动后第一次采样有效。而进行下一次采样时,单片机卡死。

也就是说,单片机只能进入一次 DMA 中断,而在中断后就无法继续启用 DMA 并进行采样。

在花了亿点点时间后,终于 get 了再次开启采样的正确姿势,故有此踩坑小记。

阅读全文 »

在编写单片机程序时,常常会有这样的需求:

graph LR
   A[监听按键事件中断] -- 按键按下 ---> B[中断回调函数] --> C[执行用户代码]

但是,由于按键抖动等原因,按键中断可能会被意外触发,导致按钮事件重复执行,这不是我们希望看到的。

解决此问题的一个方法,就是“在中断回调函数头部屏蔽按键中断事件,在尾部重新开启中断事件”,以达到防止按钮误触的目的。

本文以 STM32F103C8T6 为例,介绍通过寄存器屏蔽特定线路的外部中断的方法。

阅读全文 »

上个月有个单片机的开发项目,使用了 STM32CubeMX(v6.5.0) 来生成 HAL 库代码,几乎在每次重新生成代码(Re-Generate)时,都会出现卡死的情况,尝试了网上的一些方案并未解决,这里记录下自己的解决办法。

阅读全文 »

找了个时间,把 NexT 主题从 7.x 升级到了 8.x ,期间遇到不少问题,最麻烦的就是这个透明背景的设置了。
首先是 NexT8 把 _custom.styl 的位置进行了更换,需要在其它目录新建一个自定义的样式文件并引入。
其次,原先设置背景透明度的方法失效了,在新主题上不起作用。
更麻烦的是,照着网上大多数教程配置好透明后,在一些部件获得鼠标焦点后,会有白色色块出现并闪烁。
本人经过好一阵研究,终于完美解决,特此分享。

阅读全文 »

最近做的项目之中需要在服务器跑一跑 TensorFlow 模型,在本地测试时使用的是 Python3.9 版本。但服务器上默认安装的 Python 是 3.6 版本,有很多软件包无法安装。因此有必要安装个 Python3.9。同时,为了避免和已安装版本冲突,我决定采用虚拟环境形式。

然鹅,这一看似简单的过程出了不少问题,比如无法引入 ssl、无法连接共享库等等。在此记录分享一下。

阅读全文 »