- 博客(23)
- 资源 (3)
- 收藏
- 关注
原创 4~20ma电流控制总结
采集芯片采用1110时,注意量程范围是±2.08V,与1100±3.3不同,或导致输出满福,此时应该降低R10电阻。 R6与R8匹配,调整输出电压,R8越小,输出电压范围越小。 C15考虑采用0.01,降低干扰DAC采用内部基准源,降低由于配置问题导致的系统问题,内部基准2.5V。 R25调整输出增益,2.5K 1:1输出,5K 1:0.5输出 SPI时序需要满足数据手册 输出未能隔离...
2021-11-21 11:21:19 849
原创 GUI 字库生成软件的使用
该软件配合GUI库使用,软件界面如下:选择生成的字库保存位置。 打开包含所需要生成字库的txt文本文件。 选择字体,包含显示文字大小以及样式 添加后才能处理,可选择多种不同的字体和txt文本多次添加 用于选择字符宽度,降低中文字符占用的像素 自动算法让程序根据生成的字库自动选择所需内存最低的算法,点阵字库按照像素点生成矩阵,90°旋转专用于OSD层旋转90°的情况,多见于嵌入式液晶屏 边框样式,所有文字都可带框,便于在所有场景下可见 点击后生成GUI所需的字库...
2021-07-21 16:09:02 724
原创 GUI 使用3
初级控件的创建:控件分为初级控件和高级控件两种,初级控制分为文本控件、图片控件、进度条控件和按钮控件,高级控件由初级控件组合而成,主要是菜单控件。文本控件:L_U32 L_GUI_CreatText(L_U32 WindowID, L_CHAR *str, L_U32 len, ts_LPoint point_LeftTop, ts_LPoint point_RightBottom, L_U32 ID, L_U8 mode)WindowID:所依附的窗口IDstr:初始化时显示的字符串
2021-07-20 16:38:15 474
原创 GUI 使用2
初始化:L_U8 L_GUIStart(L_U8 *fact_addr, L_U32 len, L_U32 count)fact_addr:为外部指定的内存首地址len:外部指定的内存大小count:外部指定的内存块数,用来限制内存碎片调用成功返回1当L_AUTO_MEMORY配置为1,即系统自动分配内存的时候,这三个参数均为0。该函数必须在GUI使用最前端调用一次。窗口初始化:L_U32 L_GUI_CreateWindow(L_U32 osd_width, L_U32
2021-07-20 16:16:34 189
原创 GUI 使用1
该GUI为嵌入式系统开发,可以用来做简单的字符显示GUI系统结构:L_GUI_api.hL_GUI_config.h ───配置文件L_GUI_control.c ─┬─控件处理 L_GUI_control.h ─┤L_GUI_control2.c ─┘L_GUI_def.h ───核心头文件,包含这个即可L_GUI_drv.c ─┬─内存处理文件L_GUI_drv.h ─┘L_GUI_drw.c ─┬
2021-07-20 15:53:27 536
原创 台达ASDA-B3 CAN总线位置模式简单通信
初始化配置:1. P1.001:设置0x0C, CANOpen模式2. P3.000:设置CANID3. P3.001:设置波特率4. P1.044/P1.045:电子齿轮分子分母设置,一般分子16777216,分母为多少,即多少个位置脉冲一圈,分母越大,精度越高。CAN配置:0x6060:0x01,设置工作在位置模式0x607A:设置位置,该位置与电子齿轮分母有关0x6081:设置速度,每秒多少个脉冲,与电子齿轮分母有关0x6083/0x6084:设置加减速时间斜率
2021-04-17 08:56:49 4870
原创 sqlite3 数据库的操作
数据库是程序中常用的部分,sqlite3是puthon自带的数据库程序,使用上比较方便。sqlite3 操作上需要首先进行连接,由于connect函数无论数据库文件在不存在时会自动创建,为防止创建的文件为空,软件运行时首先判断文件是否存在,不存在则创建数据库的所有信息,也可以在内存中创建数据库,路径采用:memory:即表明在内存中创建之后设置游标cursor,再通过execute对内容进行操作,完成后调用commit写入信息,然后关闭游标和数据库。主要操作都在execute函数中,按照特定格式发送
2021-04-02 09:09:25 649
原创 configparser 配置文件操作库
程序中涉及到了配置文件的操作,虽然比较简单,但随记configparser 可以完成对配置文件的读取和写入操作,软件启动后首先判断配置文件是否存在 os.path.exists(path),不存在则创建配置文件,分别创建键名和键值,只有在调用 write 函数后才会真正在硬盘上创建文件并写入信息,之后调用read读取文件信息,尽量保证需要读取的键值是存在的。class LConfigFile: """ 配置文件读取/设置 数据库读取/设置 """ def __init__(se
2021-04-02 08:35:05 169
转载 Pyinstaller多进程代码打包exe出现多个进程解决方案
参考:https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessinghttp://blog.csdn.net/xiong_big/article/details/54614231在工程下新建py文件 frozen.pyimport osimport sysimport multiprocessing # Module multiprocessing is organized differently in Pyth
2021-03-31 15:08:15 454
原创 SDL2 显示视频并在视频上显示文字
SDL2可以直接显示视频,也可以在mfc控件上显示,光显示图像比较简单,但是SDL本身不带字库,因此不能直接显示文字,需要调用第三方库完成。 SDL2可以直接从官方下载,但显示文字需要用扩展库SDL_ttf实现,ttf是True Type Font的缩写,ttf是Windows下的缺省字体,它有美观,放大缩小不变形的优点,因此广泛应用很多场合。使用ttf库的第一件事要从Windows的字库下拷贝出一个字库出来,最好是中文字体,这样可以同时支持英文和中文显示。它一般在c:\w...
2021-02-07 10:50:24 1051
原创 onvif 客户端默认绑定127.0.0.1导致的发现问题
使用onvif协议栈时,客户端默认不绑定任何ip地址,导致发送的时候使用了127.0.0.1作为本地地址,一般情况下也不会出现问题,但是某些环境下,比如防火墙或者计算机配置,会导致该地址发送的数据无法被设备接收。经过比较测试,当使用 ONVIF Conformance Test 工具,采用IPv4 Discover Device和指定IP测试Discover Device时,发送数据的源地址不同,IPv4使用了 127.0.0.1,设备没有对数据进行回复。这种情况下采用onvif协议栈同样不...
2021-02-06 15:08:46 313
原创 Visual Studio 2019 x64 环境下onvif环境的搭建,含客户端、服务端及鉴权
生成onvif.h文件wsdl2h -o onvif.h -c++ -s -t ./typemap.dat http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl http://www.onvif.org/onvif/ver10/deviceio.wsdl http://www.onvif.org/onvif/ver10/netw
2021-01-13 16:59:45 923
原创 Visual Studio Code下go语言编译环境的安装(win10)
1.安装Visual Studio Code https://code.visualstudio.com/下直接安装2.安装go https://golang.google.cn/dl/下直接安装3.安装Git https://git-scm.com/downloads/下直接安装,好像没什么卵用,不过随大流吧。2.vscode安装go环境 安装完vscode后,在左侧中间扩展按钮中直接搜索go,然后安装即可。顺便搜索C...
2021-01-06 09:33:36 1391
原创 海康硬盘录像机 rtsp/onvif 视频配置
rtsp在硬盘录像机中非标准配置,需要自己手动添加,首先进入 系统-通道管理 添加自定义协议,选择一个自定义协议,并设置协议名称,便于管理。设置RTSP端口号,以及资源路径,保存即可。资源路径设置后,在添加设备的时候会自动添加到IP地址后面 点击添加,增加设备 设置IP通道地址,协议类型选择前面改的名称,要是rtsp没有密码,随意填即可。点击确定后会将摄像头加入硬盘录像机,视频流有效时,会自动拉取。同一IP多个rtsp流需要设...
2020-12-10 16:42:20 8469 1
原创 网络视频流 -- ffmpeg 推流
一般流媒体服务器自动拉流功能要求较多,需要自己实现rtsp协议中较多部分,而ffmpeg本身rtsp拉流配置支持不好,本着站在巨人肩膀上的原则,直接采用ffmpeg推流,将数据推送到视频服务器,再由视频服务器转发,供更多设备拉取数据。 ffmpeg推流与文件保存流程相同,只是始终写而不结束,拉流配置代码如下: AVCodecContext* pCodecCtx = 0; AVCodec* pCodec; int in_w, in_h, got_picture, r...
2020-12-10 16:24:51 1870
原创 网络视频流 -- ffmpeg 视频编码
ffmpeg 作为通用,好用,耐用的视频处理开源库,是大多数视频开发者的唯一选择,因为没钱,我也只能用这个。。 使用FFmpeg-4.3.1,DLL版本如上,由于调用软件兼容性问题,采用64位版本,直接上代码了:DWORD WINAPI H264CoderFunc(LPVOID pParam){ MSG msg; unsigned char* p; AVCodecContext* pCodecCtx = 0; AVCodec* pCod...
2020-12-10 16:15:32 528
原创 网络视频流 -- rtsp协议浅析
rtsp包含控制信息和数据信息两部分,数据信息包含视频和音频信息,控制信息包含握手,请求等,使用UDP和TCP两种通信方式,基本构成如下: 控制信息通过TCP进行传输,内容可被HTTP解析器解析,包含以下基本信息: 询问设备是否有效:C->S:OPTION request //询问S有哪些方法可用S->C:OPTION response //S回应信息中包括提供的所有可用方法 输出rtsp参数信息C-&g...
2020-12-10 16:00:12 1553
原创 MX1508 手册及说明
MX1508 SOP-16 四通道双路有刷直流马达驱动IC概述该产品为电池供电的玩具、低压或者电池供电的运动控制应用提供了一种集成的有刷直流马达驱动解决方案。电路内部集成了两通道采用N沟和P沟功率MOSFET设计的H桥驱动电路,适合于驱动电动玩具车的转向轮及后轮驱动,(驱动有刷直流马达或者驱动步进马达的两个绕组)。该电路具备较宽的工作电压范围(从2V到9.6V),转向轮最大持续输出电流达到0.8A,最大峰值输出电流达到1.5A。后轮驱动最大持续输出电流达到1.5A,最大峰值输出电流达到2A。该驱动电路
2020-11-09 11:13:50 9177
原创 STM32CubeIDE LWIP UDP 网络通讯
STM32CubeIDE 已经构建了一套良好的网络通讯框架,结合LWIP可实现大部分网络通信任务,现主要对UDP单播及组的配置进行说明: 测试电路板采用STM32F4系列芯片+LAN8720方案构建的百兆网络,首先配置ETH外设,LAN8720芯片的PHYAD0引脚悬空,故PHY Address设置为0: 设置PHY为 user PHY: ...
2020-10-20 13:47:11 4904 1
原创 AS5048 SPI模式控制问题
AS5048作为一款绝对位置磁编码器,以14位的精度,小体积低功耗,被广泛用于直流无刷电机的控制中。 AS5048数据类型分为控制命令,读数据包和写数据包三种,写数据包其实和控制命令格式类似。每种数据类型均为16位有效数据,低14位为数据,最高位为读写奇偶校验,bit14在控制命令中为读写标志,读数据包中为错误标志。 芯片上电即可读数据,读取角度的命令值为0x3fff,加上读写标志和校验,刚好为0xffff,因此该芯片可以工作在只读模式下。将MOSI置高即可。我们一般使用4线模式...
2020-06-19 11:12:03 1277
原创 STM32CubeIDE 外设设置注意点(CAN、TIMER等等)
随记~! STM32CubeIDE运行环境友好,功能丰富,更新迅速,相比之前的keil等stm32开发环境要好很多,但是每一个新环境都有自己的坑。。。。 1.CAN外设 CAN在配置Cube环境时并没有滤波器选项,若不进行配置,则不能正常收发数据,需要在初始化函数完成后调用HAL_CAN_ConfigFilter函数完成滤波器配置。 ...
2020-04-23 17:08:51 2509
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人