整个高级活,把c写的st7789固件加入micropython固件,现在对micropython的固件的掌控就差最后一块拼图了,也是最难的,就是用c给micropython写库了。
简单记录步骤:
1.去github找一个现成的驱动mpy fast c驱动;
2.看官方文档,直接make加参数也能搞进去,不过为了方便自定义其他内容,还是把文件放进去更靠谱,这里一般都是.c .h成套两个文件,扔进去,最新版本的Mpy一般都放在extmod文件夹里,再新建个文件夹,都扔进去;
3.找到extmod.cmake文件,把自己添加的c库加进去,大功告成!
生成固件,用c库,舒服了!好处一是资源更多,二是速度快,尤其是显示屏驱动,基本都是c库,不然速度捉急

补充一下extmod.cmake的设置方法 怕忘了
首先extmod文件夹下将整个st7789文件夹拷贝过去

然后
改extmod.cmake

# CMake fragment for MicroPython extmod componentset(MICROPY_EXTMOD_DIR "${MICROPY_DIR}/extmod")
set(MICROPY_OOFATFS_DIR "${MICROPY_DIR}/lib/oofatfs")set(MICROPY_SOURCE_EXTMOD${MICROPY_DIR}/shared/libc/abort_.c${MICROPY_DIR}/shared/libc/printf.c${MICROPY_EXTMOD_DIR}/machine_bitstream.c${MICROPY_EXTMOD_DIR}/machine_i2c.c${MICROPY_EXTMOD_DIR}/machine_mem.c${MICROPY_EXTMOD_DIR}/machine_pulse.c${MICROPY_EXTMOD_DIR}/machine_pwm.c${MICROPY_EXTMOD_DIR}/machine_signal.c${MICROPY_EXTMOD_DIR}/machine_spi.c${MICROPY_EXTMOD_DIR}/modbluetooth.c${MICROPY_EXTMOD_DIR}/modframebuf.c${MICROPY_EXTMOD_DIR}/modlwip.c${MICROPY_EXTMOD_DIR}/modnetwork.c${MICROPY_EXTMOD_DIR}/modonewire.c${MICROPY_EXTMOD_DIR}/moduasyncio.c${MICROPY_EXTMOD_DIR}/modubinascii.c${MICROPY_EXTMOD_DIR}/moducryptolib.c${MICROPY_EXTMOD_DIR}/moductypes.c${MICROPY_EXTMOD_DIR}/moduhashlib.c${MICROPY_EXTMOD_DIR}/moduheapq.c${MICROPY_EXTMOD_DIR}/modujson.c${MICROPY_EXTMOD_DIR}/moduos.c${MICROPY_EXTMOD_DIR}/moduplatform.c${MICROPY_EXTMOD_DIR}/modurandom.c${MICROPY_EXTMOD_DIR}/modure.c${MICROPY_EXTMOD_DIR}/moduselect.c${MICROPY_EXTMOD_DIR}/modusocket.c${MICROPY_EXTMOD_DIR}/modussl_axtls.c${MICROPY_EXTMOD_DIR}/modussl_mbedtls.c${MICROPY_EXTMOD_DIR}/modutimeq.c${MICROPY_EXTMOD_DIR}/moduwebsocket.c${MICROPY_EXTMOD_DIR}/moduzlib.c${MICROPY_EXTMOD_DIR}/modwebrepl.c${MICROPY_EXTMOD_DIR}/uos_dupterm.c${MICROPY_EXTMOD_DIR}/utime_mphal.c${MICROPY_EXTMOD_DIR}/vfs.c${MICROPY_EXTMOD_DIR}/vfs_blockdev.c${MICROPY_EXTMOD_DIR}/vfs_fat.c${MICROPY_EXTMOD_DIR}/vfs_fat_diskio.c${MICROPY_EXTMOD_DIR}/vfs_fat_file.c${MICROPY_EXTMOD_DIR}/vfs_lfs.c${MICROPY_EXTMOD_DIR}/vfs_posix.c${MICROPY_EXTMOD_DIR}/vfs_posix_file.c${MICROPY_EXTMOD_DIR}/vfs_reader.c${MICROPY_EXTMOD_DIR}/virtpin.c${MICROPY_EXTMOD_DIR}/nimble/modbluetooth_nimble.c${MICROPY_EXTMOD_DIR}/st7789/st7789.c${MICROPY_EXTMOD_DIR}/st7789/mpfile.c${MICROPY_EXTMOD_DIR}/st7789/jpg/tjpgd565.c${MICROPY_EXTMOD_DIR}/st7789/png/pngle.c${MICROPY_EXTMOD_DIR}/st7789/png/miniz.c
)add_library(usermod_st7789 INTERFACE)target_include_directories(usermod_st7789 INTERFACE${MICROPY_EXTMOD_DIR}/st7789
)target_compile_definitions(usermod_st7789 INTERFACEMODULE_ST7789_ENABLED=1MICROPY_PY_FILE_LIKE=1EXPOSE_EXTRA_METHODS=1
)target_link_libraries(usermod INTERFACE usermod_st7789)# Library for btree module and associated codeif(MICROPY_PY_BTREE)set(MICROPY_LIB_BERKELEY_DIR "${MICROPY_DIR}/lib/berkeley-db-1.xx")add_library(micropy_extmod_btree OBJECT${MICROPY_LIB_BERKELEY_DIR}/btree/bt_close.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_conv.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_debug.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_delete.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_get.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_open.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_overflow.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_page.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_put.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_search.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_seq.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_split.c${MICROPY_LIB_BERKELEY_DIR}/btree/bt_utils.c${MICROPY_LIB_BERKELEY_DIR}/mpool/mpool.c)target_include_directories(micropy_extmod_btree PRIVATE${MICROPY_LIB_BERKELEY_DIR}/PORT/include)target_compile_definitions(micropy_extmod_btree PRIVATE__DBINTERFACE_PRIVATE=1mpool_error=printfabort=abort_"virt_fd_t=void*")# The include directories and compile definitions below are needed to build# modbtree.c and should be added to the main MicroPython target.list(APPEND MICROPY_INC_CORE"${MICROPY_LIB_BERKELEY_DIR}/PORT/include")list(APPEND MICROPY_DEF_CORE__DBINTERFACE_PRIVATE=1"virt_fd_t=void*")list(APPEND MICROPY_SOURCE_EXTMOD${MICROPY_EXTMOD_DIR}/modbtree.c)
endif()# Library for mbedtlsif(MICROPY_SSL_MBEDTLS)add_library(micropy_lib_mbedtls INTERFACE)set(MICROPY_LIB_MBEDTLS_DIR "${MICROPY_DIR}/lib/mbedtls")target_include_directories(micropy_lib_mbedtls INTERFACE${MICROPY_LIB_MBEDTLS_DIR}/include)target_sources(micropy_lib_mbedtls INTERFACE${MICROPY_DIR}/lib/mbedtls_errors/mp_mbedtls_errors.c${MICROPY_LIB_MBEDTLS_DIR}/library/aes.c${MICROPY_LIB_MBEDTLS_DIR}/library/aesni.c${MICROPY_LIB_MBEDTLS_DIR}/library/arc4.c${MICROPY_LIB_MBEDTLS_DIR}/library/asn1parse.c${MICROPY_LIB_MBEDTLS_DIR}/library/asn1write.c${MICROPY_LIB_MBEDTLS_DIR}/library/base64.c${MICROPY_LIB_MBEDTLS_DIR}/library/bignum.c${MICROPY_LIB_MBEDTLS_DIR}/library/blowfish.c${MICROPY_LIB_MBEDTLS_DIR}/library/camellia.c${MICROPY_LIB_MBEDTLS_DIR}/library/ccm.c${MICROPY_LIB_MBEDTLS_DIR}/library/certs.c${MICROPY_LIB_MBEDTLS_DIR}/library/chacha20.c${MICROPY_LIB_MBEDTLS_DIR}/library/chachapoly.c${MICROPY_LIB_MBEDTLS_DIR}/library/cipher.c${MICROPY_LIB_MBEDTLS_DIR}/library/cipher_wrap.c${MICROPY_LIB_MBEDTLS_DIR}/library/cmac.c${MICROPY_LIB_MBEDTLS_DIR}/library/ctr_drbg.c${MICROPY_LIB_MBEDTLS_DIR}/library/debug.c${MICROPY_LIB_MBEDTLS_DIR}/library/des.c${MICROPY_LIB_MBEDTLS_DIR}/library/dhm.c${MICROPY_LIB_MBEDTLS_DIR}/library/ecdh.c${MICROPY_LIB_MBEDTLS_DIR}/library/ecdsa.c${MICROPY_LIB_MBEDTLS_DIR}/library/ecjpake.c${MICROPY_LIB_MBEDTLS_DIR}/library/ecp.c${MICROPY_LIB_MBEDTLS_DIR}/library/ecp_curves.c${MICROPY_LIB_MBEDTLS_DIR}/library/entropy.c${MICROPY_LIB_MBEDTLS_DIR}/library/entropy_poll.c${MICROPY_LIB_MBEDTLS_DIR}/library/gcm.c${MICROPY_LIB_MBEDTLS_DIR}/library/havege.c${MICROPY_LIB_MBEDTLS_DIR}/library/hmac_drbg.c${MICROPY_LIB_MBEDTLS_DIR}/library/md2.c${MICROPY_LIB_MBEDTLS_DIR}/library/md4.c${MICROPY_LIB_MBEDTLS_DIR}/library/md5.c${MICROPY_LIB_MBEDTLS_DIR}/library/md.c${MICROPY_LIB_MBEDTLS_DIR}/library/md_wrap.c${MICROPY_LIB_MBEDTLS_DIR}/library/oid.c${MICROPY_LIB_MBEDTLS_DIR}/library/padlock.c${MICROPY_LIB_MBEDTLS_DIR}/library/pem.c${MICROPY_LIB_MBEDTLS_DIR}/library/pk.c${MICROPY_LIB_MBEDTLS_DIR}/library/pkcs11.c${MICROPY_LIB_MBEDTLS_DIR}/library/pkcs12.c${MICROPY_LIB_MBEDTLS_DIR}/library/pkcs5.c${MICROPY_LIB_MBEDTLS_DIR}/library/pkparse.c${MICROPY_LIB_MBEDTLS_DIR}/library/pk_wrap.c${MICROPY_LIB_MBEDTLS_DIR}/library/pkwrite.c${MICROPY_LIB_MBEDTLS_DIR}/library/platform.c${MICROPY_LIB_MBEDTLS_DIR}/library/platform_util.c${MICROPY_LIB_MBEDTLS_DIR}/library/poly1305.c${MICROPY_LIB_MBEDTLS_DIR}/library/ripemd160.c${MICROPY_LIB_MBEDTLS_DIR}/library/rsa.c${MICROPY_LIB_MBEDTLS_DIR}/library/rsa_internal.c${MICROPY_LIB_MBEDTLS_DIR}/library/sha1.c${MICROPY_LIB_MBEDTLS_DIR}/library/sha256.c${MICROPY_LIB_MBEDTLS_DIR}/library/sha512.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_cache.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_ciphersuites.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_cli.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_cookie.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_srv.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_ticket.c${MICROPY_LIB_MBEDTLS_DIR}/library/ssl_tls.c${MICROPY_LIB_MBEDTLS_DIR}/library/timing.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509_create.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509_crl.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509_crt.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509_csr.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509write_crt.c${MICROPY_LIB_MBEDTLS_DIR}/library/x509write_csr.c${MICROPY_LIB_MBEDTLS_DIR}/library/xtea.c)target_compile_definitions(micropy_lib_mbedtls INTERFACEMBEDTLS_CONFIG_FILE="${MICROPY_PORT_DIR}/mbedtls/mbedtls_config.h")list(APPEND MICROPY_INC_CORE"${MICROPY_LIB_MBEDTLS_DIR}/include")
endif()# Library for lwIP network stackif(MICROPY_PY_LWIP)add_library(micropy_lib_lwip INTERFACE)set(MICROPY_LIB_LWIP_DIR "${MICROPY_DIR}/lib/lwip/src")target_include_directories(micropy_lib_lwip INTERFACE${MICROPY_LIB_LWIP_DIR}/include)target_sources(micropy_lib_lwip INTERFACE${MICROPY_DIR}/shared/netutils/netutils.c${MICROPY_LIB_LWIP_DIR}/apps/mdns/mdns.c${MICROPY_LIB_LWIP_DIR}/core/def.c${MICROPY_LIB_LWIP_DIR}/core/dns.c${MICROPY_LIB_LWIP_DIR}/core/inet_chksum.c${MICROPY_LIB_LWIP_DIR}/core/init.c${MICROPY_LIB_LWIP_DIR}/core/ip.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/autoip.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/dhcp.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/etharp.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/icmp.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/igmp.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/ip4.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/ip4_addr.c${MICROPY_LIB_LWIP_DIR}/core/ipv4/ip4_frag.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/dhcp6.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/ethip6.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/icmp6.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/inet6.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/ip6.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/ip6_addr.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/ip6_frag.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/mld6.c${MICROPY_LIB_LWIP_DIR}/core/ipv6/nd6.c${MICROPY_LIB_LWIP_DIR}/core/mem.c${MICROPY_LIB_LWIP_DIR}/core/memp.c${MICROPY_LIB_LWIP_DIR}/core/netif.c${MICROPY_LIB_LWIP_DIR}/core/pbuf.c${MICROPY_LIB_LWIP_DIR}/core/raw.c${MICROPY_LIB_LWIP_DIR}/core/stats.c${MICROPY_LIB_LWIP_DIR}/core/sys.c${MICROPY_LIB_LWIP_DIR}/core/tcp.c${MICROPY_LIB_LWIP_DIR}/core/tcp_in.c${MICROPY_LIB_LWIP_DIR}/core/tcp_out.c${MICROPY_LIB_LWIP_DIR}/core/timeouts.c${MICROPY_LIB_LWIP_DIR}/core/udp.c${MICROPY_LIB_LWIP_DIR}/netif/ethernet.c)list(APPEND MICROPY_INC_CORE${MICROPY_LIB_LWIP_DIR}/include)string(CONCAT GIT_SUBMODULES "${GIT_SUBMODULES} " lib/lwip)
endif()

在micropython固件中加入st7789驱动相关推荐

  1. 【自用】ESP32-S3新板子 从零配置micropython环境(安装CH343驱动等)

    总览 1.安装CH343驱动 2.下载 microPython 固件 3.安装烧录软件 flash_download_tool_3.9.3.exe 并开始烧录 4.安装 Thonny IDE 软件 并 ...

  2. python nodemcu_NodeMCU-32S MicroPython固件的使用

    需要准备 MicroPython 固件 python 环境 第一步 下载固件 选择上方的DOWNLOAD跳转到下载页面 这里会有很多设备的固件版本,选择自己的版本,这里我下载的是: [Firmware ...

  3. 自行编译micropython固件刷入ESP32 cam,并测试拍照及图传

    一.环境准备 1.Ubuntu20.04LTS 2.ESP-IDF 3.micropython 操作步骤 1.安装基于Windows的linux子系统 适用于 Linux 的 Windows 子系统安 ...

  4. 固件中启用的虚拟化否_哪些固件或硬件机制可启用强制关机?

    固件中启用的虚拟化否 At one time or another, all of us have had to force our computers to shut down by pushing ...

  5. 潘多拉开发板——emwin5.44裸机移植记录(ST7789驱动)

    一.emwim5.44的获取 1.打开STM32CubeMX,通过主界面help-Update Setting查看 点击后在弹出的界面可以看到路径,以我的电脑为例,可以找到以下的文件夹 正点原子的潘多 ...

  6. micropython中文社区 microbit_microbit如何烧录micropython固件

    欢迎大家加入我们的uPyCraft-Micropython QQ群: 619558168 Microbit硬件上是由cmsis-dap芯片和nrf51822芯片两部分构成.Cmsis-dap芯片负责烧 ...

  7. esp8266 刷 MicroPython固件,并使用MicroPython File Uploader python文件上传工具上传python文件

    1.使用模块esp8266 2.进入固件官网:https://micropython.org/download/esp8266/ 3.将下载的esp8266-20220618-v1.19.1.bin放 ...

  8. ESP32刷入MicroPython固件

    ESP32刷入MicroPython固件 背景介绍 ESP32小板子介绍 MicroPython简介 获取ESP32的固件 为ESP32刷入MicroPython固件 配置 下载 交互式脚本编程 安装 ...

  9. NodeNCU(ESP8266)刷MicroPython固件、连接WiFi并传输文件

    NodeMCU(ESP8266)烧录 MicroPython固件.连接WiFi并传输文件 烧录MicroPython固件 下载MicroPython固件包 准备烧录 开始烧录 NodeMCU连接WiF ...

  10. ESP01S更新MicroPython固件后LED一直闪、串口发送乱码解决

    问题:使用安信可的固件烧录工具对ESP01S烧录MicroPython固件,复位后,板载指示灯一直闪烁. 工具:Thonny Python IDE(我是从01Studio论坛下载的,非常好的Micro ...

最新文章

  1. 哈哈哈哈哈哈!当前的人工智能有多智障?
  2. 编译原理之正则表达式
  3. visual studio 2010 开发net 2.0 3.5项目
  4. yolov1-v5学习笔记及源码解读
  5. mysql 5.7 刘,深度解析MySQL 5.7之中文全文检索
  6. 使用python进行windows系统UI自动化
  7. hdu5064 Find Sequence 单调性dp
  8. 国庆节快到了,用 Python 给自己制作国旗头像,其实很简单。
  9. 弹弹堂弹道模拟程序——第一帖
  10. ZZULIOJ 1138: C语言合法标识符
  11. 解决ADB卡在等待调试器的问题Waiting For Debugger is waiting for the debugger to attach.
  12. iptables知识点总结
  13. 重磅!达摩院发布2021十大科技趋势
  14. leetcode 881 救生艇 (python3- 贪心算法)
  15. win10 microsoft edge 浏览器收藏夹位置
  16. 全国计算机等级分为几级,全国计算机等级考试2级分几类?
  17. 基于Linux的考勤机设计方案V1.1(终端软件部分)
  18. css绘制安卓机器人
  19. 数据预处理-python实现
  20. mysql中有几种模糊查询?

热门文章

  1. AD之PCB快速选中所有元器件并锁定
  2. 推荐vs code十大强大的插件!
  3. js实现椭圆轨迹_Js 椭圆轨迹运动动画 代码分享
  4. 验票证明怎么打印_纳税人证明在哪里打印
  5. matlab结构数组22,matlab结构数组
  6. Origin 2022b | 更新及安装 | 中英文切换
  7. 测试结果可视化翻译_流行测验:此民意调查结果可视化有什么问题?
  8. 堆排序算法——C/C++
  9. asp.net core部署在docker容器中运行
  10. 有线异步通信原理_全光纤网络结构原理是什么 全光纤网络结构原理介绍【详解】...