嵌入式
文章平均质量分 75
笨笨D幸福
一个因好奇而误入地球的太阳系生物.
https://gitcode.com/mycat
https://github.com/BBDXF
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
meson 简单教程(替代cmake) + 交叉编译
现在越来越多的开源项目采用了meson+ninja的构建方式,摒弃了CMake,Makefile的方式。虽然cmake很不错,但是语法和功能确实限制太多,难以阅读和理解。meson现在就是一个更优秀的替代者。scons 和 meson类似,但是速度太慢,整体设计没有meson更简单易懂。meson可以导出cmake/vs/…的工程,方便与IDE交互,以后使用meson管理项目是个非常不错的选择。原创 2025-01-09 09:33:12 · 3506 阅读 · 0 评论 -
crui_lvgl 一个LVGL的DSL辅助工具的设想
Target以LVGL为目标,语法以CSS为Reference。原创 2023-11-28 16:59:27 · 998 阅读 · 0 评论 -
slint ui学习笔记
slint是一个类似qml的标记语言(xml/css之类方便界面设计的语言),经过编译器slint compile(类似QT的moc/uic/rcc工具)可完整的转换成Cpp或者Rust。其开发方式类似qml+cpp,这得益于slint ui的两位初始创建人来自QT团队。slint 优点。原创 2023-11-15 16:12:04 · 3019 阅读 · 0 评论 -
Golang IOT中的数据序列化与解析
Golang中对于JSON、XML、HTML、RPC、PB、Thrift等现代化协议都支持的非常好,但是对于IOT领域,用的多的反而是HEX原始数据,如果一个个解析,会是非常麻烦的事情。所以,对于HEX数据是否有方便好用的打包/解包方法?对于gob和msgpack在IOT一般比较困难,适用性差,探索一下binary的方案。原创 2023-05-18 14:12:45 · 1179 阅读 · 0 评论 -
2023.1.12 一些技术方面的感想
在过去十几年里,互联网市场从无到繁盛,然后盛极而衰,让人不得不哎叹。自己从一开始做OpenCV图像处理,算法,后来慢慢做机器人和类ROS平台,做体感,做物联网,做语音&视频直播,Linux和RTOS嵌入式,各个领域的都有涉猎,一路从VC, Qt, Golang, Rust, Java, android, JavaScript 然后涉猎了Vue/React, Flutter, flash。。。不管怎么玩,很难脱离C/C++主线,自己也喜欢这方面。原创 2023-01-12 11:23:33 · 515 阅读 · 0 评论 -
嵌入式UI框架 LVGL 学习笔记 02 页面管理和主题定制
LVGL只适用页面不太多的场合,复杂UI项目尽可能考虑Linux下QT/GTK开发。页面管理,风格美化,字体图片资源,中文输入法等在正式项目中需要慎重设计和考虑。UI初版可借助GUI工具GUI Guider或者LVGL代码缺少很多注释,文档也比较简略,论坛能解决问题有限。建议遇到问题时,多翻翻src文件夹,参看类似UI的实现。有一个比较火的开源项目参考: 开源GPS自行车码表X-TRACKPS: 后续有机会了做一个基于STM32F4的综合Demo。原创 2022-11-08 16:34:22 · 6677 阅读 · 0 评论 -
嵌入式UI框架 LVGL 学习笔记 01 基础概念
# 基础组件研究Code地址:https://github.com/lvgl 中文参考文档(可能部分内容不匹配,仅参考):http://lvgl.100ask.net/8.2/index.html 官方API参考文档地址:https://docs.lvgl.io/master/intro/index.html **注意:LVGL 7.x版本与8.x版本差别很大,建议使用8.x版本**原创 2022-11-01 10:44:39 · 2039 阅读 · 0 评论 -
golang tcp server client异常掉线判断
当TCP Client异常结束时,大部分TCP server都无法正确判断和处理这个问题。常见的解决思路:1. NoDelay: 解决不了,只解决了发送的问题2. KeepAlive:解决不了,虽然这个机制会最终导致socket error然后退出,但是时间太长,没有实际意义3. epoll error: 这个机制不是所有的语言都支持4. Timeout: 这个机制对golang内置,其他语言不一定有原生实现5. 自定义心跳:可以,需要双端支持,不建议原创 2022-09-21 12:49:28 · 3068 阅读 · 0 评论 -
11. Linux驱动 - Rust编写Linux驱动
Linux 中设备通常被分为三类,每个驱动模块通常实现为这三类中的其中一种:字符设备。通常是指可以当作一个字节流来存取的设备(比如文件)。块设备。通常是可以驻有文件系统的设备(比如磁盘),和字符设备类似,但块设备有一个请求缓冲区,因此它们可以选择响应请求的最佳顺序。网络设备。通常是指能与其他主机交换数据的设备。我们以编写一个简单的字符设备驱动为例,展示如何用 Rust 来编写内核驱动。R4L 开发环境准备为了方便,我们把 Rust for Linux 简称为 R4L。首先,下载 Rust原创 2022-07-18 08:34:40 · 4136 阅读 · 0 评论 -
2. STM32F4 USB协议研究 - SD卡模拟U盘
SDIO的时钟是有讲究的,默认使用48MHz专用频率,但是,如果不适用DMA方式,MCU是无法跟上读写速度,导致模拟出来的U盘不能格式化。USB设备首先分为Host和Device.DMA版本暂时不考虑,具体细节参考。......原创 2022-07-16 11:09:05 · 2375 阅读 · 1 评论 -
1. STM32F4 USB协议研究 - USB协议
https://blog.youkuaiyun.com/laifengyuan1/article/details/1079542221、USB的背景简介2、USB的几种概念3、USB的插入检测标准 USB 共四根线组成 , 除 VCC/GND 外,另外为 D+和 D-,这两根数据线采用的是差分电压的方式进行数据传输的。USB Host判断设备端是何种速度设备的判别方法:鼠标发送给PC的数据每次4个字节BYTE1 BYTE2 BYTE3 BYTE4定义分别是:2、键盘报文键盘发送给PC的数据每次8个字节BYTE原创 2022-07-12 17:07:27 · 2450 阅读 · 0 评论 -
10. Linux驱动 - Ubuntu驱动签名
在一般得嵌入式Linux中,默认驱动签名是不打开的,所以驱动程序编写完成后,直接 就可以使用了。但是在Ubuntu等成品系统中,因为安全和引导问题,大多是开启的,所以所有的驱动都要经过签名才能使用。内核从3.7后开始支持模块签名,这个功能使能以后,内核只允许安装特定key签名的模块。在安全启动模式下,是不能加载未签名或由未注册的密钥签名的内核模块的。内核在编译的时候,启动相关配置(.config),内核才会启动内核签名功能如何查看驱动是否加入签名查看驱动程序,最后面数据是否是签名Demo假设驱动原创 2022-07-11 11:04:09 · 3732 阅读 · 1 评论 -
基于Arduino ESP32的BLE键盘实现
基于Arduino ESP32的BLE键盘实现硬件 ESP32, 基础平台 Arduino,编程工具使用VS PlatformIO.首先,platformio.ini; PlatformIO Project Configuration File;; Build options: build flags, source filter; Upload options: custom upload port, speed and extra flags; Library options:原创 2021-11-15 13:54:51 · 3061 阅读 · 2 评论 -
基于STM32F4、RT-Thread通用BootLoader使用经验
本文来自RT-Thread项目代码贡献者(SeniorZ)希望对基于RT-Thread系统开发项目的朋友有所帮助。硬件资源正点原子stm32f407zgt6探索者开发板,片上Flash(ROM)大小为1024KB,RAM大小为192KB,板载一个SPI Flash W25Q128。BootLoader配置根据官方文档:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboo...转载 2021-09-30 15:47:57 · 884 阅读 · 2 评论 -
RustEmb_4.Stop
心路历程为了完成 USB HID Rust例程,先学习了Keil C 版本内容,经过一系列学习之后,大概明白了USB和HID的原理,在编写Rust版本过程中,折腾了将近一个星期,每进步一小步总有一个细节问题拷问我自己,加上本身对于USB和HID驱动的细节一知半解,这个RUST版本终将难产,胎死腹中!/(ㄒoㄒ)/~~其中,Keil C版本参考正点原子的STMF4系列教程,链接 https://www.bilibili.com/video/BV1Rx411R75t ,非常感谢前辈们的付出!Rust版本参原创 2020-07-27 21:15:10 · 461 阅读 · 1 评论 -
RustEmb_3.USART串口
说明串口在嵌入式领域是一个非常重要的功能,它不仅用来做普通的通信,还可以作为一种通用的调试手段。在STM32F4系列芯片中,大多都同时支持4-8个串口,这一章我们参考Keil版本串口通信代码,实现一个Rust版本的串口。C版本其核心是配置IO端口复用,以及串口时钟及中断。其中USART1_IRQHandler函数是固定的用来处理USART1的中断功能函数,在startup_stm32f40_41xxx.s文件中引用。#include "stm32f4xx.h"#include "stm32f4原创 2020-07-04 16:02:36 · 2248 阅读 · 1 评论 -
RustEmb_2.HelloWorld
说明在传统的C编写STM32代码时,有两种使用方式:寄存器版本和HAL库版本。使用Rust编写时也一样,你需要考虑使用寄存器版本或者HAL库版本。toolchain与STM32对应关系使用Rust编写实质上是将Rust代码编译为无STD库的arm平台代码(二进制,汇编为arm指令集),然后将其中的代码段根据嵌入式硬件的要求,写入到芯片中,从而实现在STM32中跑RUST的效果。我们这里使用的芯片STM32F407ZGT6 是一颗Cortex-M4架构的芯片,其对应RUST toolchain关系为原创 2020-06-29 22:50:40 · 634 阅读 · 0 评论 -
RustEmb_1.环境配置
说明此系列文章是参考 The Embedded Book 和 Discovery 以及众多第三方文章杂糅而成????,仅用于学习和探索Rust在STM32嵌入式领域的使用。为了方便自己使用,以下工具和方式非官方推荐,但是适合自己。环境准备Rust本体具体安装方式见官方 https://www.rust-lang.org/tools/installRust依赖安装rustup component add llvm-tools-previewrustup component add原创 2020-06-29 21:37:29 · 622 阅读 · 0 评论 -
RUST编写STM32F4嵌入式程序
文章目录Toml 文件跑马灯代码Toml 文件[package]authors = ["Andy"]edition = "2018"readme = "README.md"name = "stm32app"version = "0.1.0"[dependencies]cortex-m = "*"cortex-m-rt = "*"cortex-m-semihosting = "*"panic-halt = "*"# Uncomment for the panic example.原创 2020-06-27 21:34:10 · 3440 阅读 · 0 评论 -
实习归来
经过10天得大连实习,大三终于结束了,从此以后都需要自己努力了。自己的编程生涯也大约历经了3个春秋,其中辛酸是在不足为外人道也。虽然如此,自己还是爱编程的,之后的100多天,由于要历经考验,虽然会有大把的时间用来学习课本知识,但是也因此有了整块的自己的时间。 自原创 2011-08-01 21:49:27 · 1434 阅读 · 2 评论 -
MSP430单片机资料
MSP430单片机的发展 德州仪器1996年到2000年初,先后推出了31x、32x、33x等几个系列,这些系列具有LCD驱动模块,对提高系统的集成度较有利。每一系列有ROM 型(C)、OTP 型(P)、和 EPROM 型(E)等芯片。EPROM 型的价格昂贵,运行环境温度原创 2011-08-21 09:43:01 · 2820 阅读 · 1 评论 -
红外遥控的发射和接收原理
为了更直观地让大家理解红外遥控的原理,这篇文章用图片来帮你理解红外遥控的发射管原理和接收原理。红外遥控的概述:红外线的光谱位于红色光之外, 波长是0.76~1.5μm,比红光的波长还长。红外遥控是利用红外线进行传递信息的一种控制方式,红外遥控具有抗干扰,电路简单,容易编码原创 2011-08-29 10:22:55 · 33748 阅读 · 4 评论 -
DS18B20温度测量、报警系统的设计
能简介:温度测量范围0~99.9摄氏度,可设置上限报警温度、下限报警温度(即高于上限值或者低于下限值时蜂鸣器报警),默认上限报警温度为38℃、默认下限报警温度为5℃。报警值可设置范围:最低上限报警值等于当前下限报警值,最高下限报警值等于当前上限报警值。将下限报警值调为0时为关闭下原创 2011-10-03 21:58:02 · 8696 阅读 · 4 评论 -
MSP430 学习历程
软件下载,纠结中.......(话说真难下,没有一个提供资源的)我打算下好了自己自己网盘留一个种,后人乘凉啊! 下面是看视频的笔记吧:原创 2012-05-21 14:45:40 · 991 阅读 · 0 评论 -
UNIX环境高级编程-第三版
Unix环境高级编程-第三版之前学习了《Linux系统编程》对于常见的概念和函数都有了基础的认知,这里准备通过这本书,深入学习系统API相关内容。笔记内容会有所倾向,不会严格反应书本内容。基础概念+----------+|应用程序 |+------+ || Shell| |+------+ || 内核 | |+------+ || Libs | |...原创 2018-12-22 16:33:15 · 6811 阅读 · 0 评论 -
OPCUA-Python
OPCUA-Pythonpip install opcuaServerfrom threading import Threadimport copyimport loggingfrom datetime import datetimeimport timefrom math import sinimport syssys.path.insert(0, "..")try: ...原创 2019-02-23 11:35:05 · 11884 阅读 · 14 评论 -
12位A/D转换器ADS7804与51单片机的接口及程序设计
摘要:ADS7804是美国BURR-BROWN公司推出的一种新型12位A/D转换器。文中介绍了它的特性与功能,给出了一种简洁而新颖的与51单片机的接口方法,同时给出了用C语言编写的数据采集的应用程序。 关键词:模/数转换 单片机 接口 C语言 ADS7804 1原创 2011-08-05 18:43:11 · 2698 阅读 · 0 评论
分享