1 前言
学习并记录下 ESP32-C3-LCDkit 开发板的 GPIO 的使用。
2 Get-Started
.\esp-idf\examples\peripherals\gpio 目录下有二个例程,分别是 generic_gpio 和 matrix_keyboard,matrix_keyboard 是矩阵键盘的例程,手头上没有,干脆就不试了,简单看看 generic_gpio 这个例程。
copy esp-idf 的 generic_gpio 文件夹到自己的开发目录,这里我创建了个 esp_study 目录来存放,用于学习对应的 esp 例程。
2.1 generic_gpio 配置和实现
使用 vscode 打开 generic_gpio 工程,并且在 generic_gpio 根目录下保存工作区,并新建一个 .vscode,存放该工作区项目配置和工具相关文件,这个在前一篇基础入门的时候说过,就不多赘述了。
我们先配置一下工程,并让工程跑起来,同样的设置串口和使用的芯片,这里我选择 COM16 和 esp32c3,看 demo 的 README.md,可以知道,这个例程实现了两 ...
1 前言
上篇 ESP32-C3 开发环境搭建 提到了,我买了块乐鑫的 ESP32-C3-LCDkit 开发板,并且搭建好了环境,所以准备跑下 .\esp-idf\examples\get-started 的例程,试试基础的功能。
2 Get-Started
.\esp-idf\examples\get-started 目录下有三个例程,分别是 hello_world、sample_project、blink,所以我们简单分析并运行下这三个例程。
copy esp-idf 的 get-started 文件夹到自己的开发目录,这里我创建了个 esp_study 目录来存放,用于学习对应的 esp 例程。
2.1 hello_world
使用 vscode 打开 hello_world 工程,并且在 hello_world 根目录下保存工作区,并新建一个 .vscode,存放该工作区项目配置和工具相关文件。
完成后,在 .vscode 创建 c_cpp_properties.json,并填入下述内容:
12345678910{ "configurations&qu ...
ESP32
未读1 前言
最近购入了一块 ESP32-C3-LCDkit 开发板,准备拿来学习下,自从毕业后就基本没用过 espressif 的芯片了,记忆还停留在使用 ESP8266,所以重新学习下,并且做一些记录~
2 搭建 Win 开发环境
首先,进入对应的开发板的文档 ESP32-C3-LCDkit,这里面包括了开发板的对应资源描述、硬件说明、以及一些使用上的说明等。
我们主要是要搭建开发环境,所以进入应用程序开发 - 软件设置 - 快速入门。
我们需要安装 ESP-IDF(Espressif IoT Development Framework),在下方找到手动安装 - Windows Installer,
进入后,向下找到 ESP-IDF 工具安装器并进入该路径,可以看到有在线和离线的安装方式,推荐直接用离线的方式,在线安装可能需要代理。
下载完离线包后双击运行,选择简体中文 - 我同意此协议,随后进入安装前系统检测,等待检测完毕并进入下一步,
填写安装路径,默认是 C:\Espressif,我将安装路径填写到 C:\my\Espressif,因为本身我没有对磁盘进行分区,只有一 ...
1 前言
学习基于 I.MX6ULL 平台的 LVGL GUI 移植。
2 开发环境
系统: arch linux
工具: nxp-uuu-qt-tool
硬件: 正点原子 I.MX6ULL 开发板、LCD 800*480
软件: linux 内核 5.4.21、lvgl 和 lvgl drivers release/v8.3 以及 LVGL for frame buffer device
JFlash
3 准备
下述演示都是基于 win11 wsl2 debian 系统
首先,克隆 lv_port_linux_frame_buffer 仓库,命令如下:
123git clone https://github.com/lvgl/lv_port_linux_frame_buffer.gitcd lv_port_linux_frame_buffer/git submodule update --init --recursive
上述命令,克隆了 lvgl 的 lv_port_linux_frame_buffer 仓库,完成后进入该文件夹,git clone 并没有将子模块 lvg ...
1 前言
在使用 CC2640 OAD功能时,每次烧录都要烧录四个文件,而且四个工程四个输出文件都在不同的文件夹,操作起来复杂的很,所以折腾了一下,将四个烧录件合并为单个 .bin 文件,直接烧录一个即可。
2 开发环境
系统: win11
IAR Embedded Workbench IDE - Arm 8.32.1
SDK版本: simplelink_cc2640r2_sdk_5_30_00_03
例程: blestack\simple_peripheral_oad_onchip
JFlash
3 实现
oad_onchip 项目中,有四个工程,分别是 bim_onchip、app、persistent_app 和 stack,这些工程代表的意义这里就不赘述了,对这篇文章感兴趣的,相信应该对这些已经有一定的了解。
这四个工程对应的文件夹如图所示,
对整个项目进行编译后,会依次在下述几个路径生成对应的编译文件:
1234.\simple_peripheral_oad_onchip\tirtos\iar\app\FlashROM\Exe.\simple_peripheral_o ...
1 前言
简单记录下调试 Ti CC2640 时,所使用的仿真烧录器的烧录方式。
2 开发环境
win11
IAR Embedded Workbench IDE - Arm 8.32.1
JFlash
3 仿真器
3.1 J-Link EDU
注:市面上的盗版 JLINK ARM V8、 ARM V9 这些似乎均不支持 cJtag 功能,使用二线模式的时候需要注意自己用的 JLink 是否支持。
使用 JLink EDU,通过二线模式烧录仿真,需要 JLink 支持 cJtag 功能,连线上只需连接 TMS、TCK、VCC 和 GND 即可,RESET 脚可接可不接,为了方便使用,最好还是接上。
3.1 XDS110
使用 XDS110 时,同样可以使用 cJtag 功能,连接 TMS、TCK 和电源地以及 RESET,接法和上面 J-Link 一致。
也可以使用 Jtag 接法,不过目前用的板子没有引出那么多口,所以未使用该方式,附上参考连接图:
4 仿真和烧录
4.1 IAR
使用 IAR 对 CC2640 项目进行仿真烧录时,需要根据选择的仿真器进行配置,上述 JLI ...
什么是 pyinstaller
PyInstaller 可以将 Python 程序打包成的独立的可执行文件。它通过读取编写的 Python 代码并分析代码在执行时需要的每一个模块和库。通过收集所有这些文件的副本及 Python 解释器,将其放在一个文件夹里,或者生成一个单独的可执行文件。
pyinstaller 优缺点
优点:
打包快,并且操作简单。
跨平台
缺点:
性能差,执行的效率会比较低。
pyinstaller 捆绑编译的 Python 脚本(.pyc文件)。 原则上可以对这些进行反编译以揭示你的代码逻辑。
还有关于单文件打包的弊端,如下图:
来源于知乎 (https://www.zhihu.com/question/48776632/answer/2336654649) @韦易笑的回答。
pyinstaller 安装
1> pip install pyinstaller
校验是否安装成功:
12> pyinstaller --version5.11.0
pyinstaller 打包
使用一个实际的项目来演示如何打包,项目地址在 QtComMate,基于 ...
python
未读什么是 Nuitka
Nuitka 是一个用 Python 编写的 Python 编译器。完全兼容 Python 2.6、2.7、3.4、3.5、3.6、3.7、3.8、3.9、3.10 和 3.11 版本,它以一种极其兼容的方式将未编译的代码和已编译的代码一起执行。Nuitka 将 Python 模块翻译成 C 级程序,然后使用 libpython 和自己的静态 C 文件,以 CPython 的方式执行。
为什么使用 Nuitka
打包体积小
性能高,Nuitka 可以显著提高 Python 代码的性能,将其编译为二进制格式,可以比解释代码更有效地执行。这可以带来更快的执行时间和更好的资源利用率。
安全性,将 Python 代码编译成二进制格式可以使攻击者更难进行逆向工程或修改代码。
Nuitka 安装和环境
安装
1> pip install nuitka
校验是否安装成功:
12345> python -m nuitka --version1.7rc4Commercial: NonePython: 3.9.10 (tags/v3.9.10:f2f3f53, Jan ...
前言
昨天写的 A Simple GPT Qt Demo,由于使用的是官方的 API 接口,所以国内是无法使用的。基于这点考虑,寻找了替代 OpenAI API代理服务来实现。
不过目前该代理接口只实现了 chat 功能,所以不能用于生成图片等功能。
代理接口支持通过上下文内容进行连续对话,所以刚好拿来玩一玩。
一些使用方法和注意事项,可以前往该链接 https://www.openai-proxy.com/ 查看,我就不多赘述了。
实现
为了直观,简单用了 QT 实现了该功能,具体代码如下:
1234567891011121314151617181920212223242526272829303132333435363738import sysimport openaiimport requestsimport jsonfrom Ui_main import Ui_MainWindowfrom PyQt5.QtWidgets import QApplication, QMainWindowclass MyPyQT_Form(QMainWindow, Ui_MainWindow): ...
前言
之前申请的 New Bing 因为要在 Edge 才能使用,所以好长时间都没有使用过。因此,特意去搜索在自己使用的浏览器 FireFox 上能使用的方法。
先贴一下实现效果:
实现
前提:使用的微软账号已经申请并拥有 new bing 的使用权限。
原理很简单,实际只是 bing 检测了发送请求的 UA(User-Agent),只要我们伪装成 Edge 的 UA 就可以正常使用了。所以,其他浏览器也可以通过伪装的方式,实现访问 New Bing。这里只是我没有装其他的浏览器,也懒得下载一一测试,所以这里只说 FireFox 的实现。
在 FireFox 的附件扩展中下载并使用 User-Agent Switcher and Manager,
点击进入该扩展,并选择 Edge 进行伪装,随后进入 new bing 就可以正常使用了,
在浏览器使用 F12 进入控制台,可以在网络的发送请求中看到,请求的 UA 已经是伪装后的了。
如果设置后进入还是没有生效,可以进入设置中将 bing.com 的 Cookie 删除,刷新试试。如果不希望所有的网站都生效伪装,可以前往插件设 ...