嵌入式
文章平均质量分 68
zhangfls
精通C、C++、java、javascript写helloworld
展开
-
移远CAT1模组OPENCPU开发:配置程序空间
2、根据模组闪存容量以及是否使用volte功能选择对应文件,如“partinfo_8850_8m_opencpu_novolte.json”文件,表示8850芯片,8M flash容量版本,opencpu开发,不开启volte功能的固件的固件分区文件。比如如果需要比较大的文件系统,则可以缩小APP_IMG的空间,增加文件系统的占用空间。表示APP_IMG的起始地址和占用空间,这个部分是开发者自己编写的程序占用的区域。分配后,注意要修改前面文件系统区域的配置,将两者起始地址和空间修改为一致的,如下。原创 2024-08-02 11:03:46 · 343 阅读 · 0 评论 -
ICM-42607六轴传感器WOM模式配置
ICM-42607支持配置WOM模式,检测到加速度变化后在中断引脚触发跳沿信号。3、尝试初始化芯片,并调用函数配置芯片进入WOM模式。至此完成六轴芯片的WOM(震动检测)模式的初始化配置。2、配置WOM模式的寄存器函数。原创 2024-06-14 17:49:46 · 639 阅读 · 0 评论 -
移远CAT1模组OPENCPU开发:添加工程
LTE01R02A02_C_SDK_G\components\ql-application\init\ql_init.c文件内的int appimg_enter(void *param)函数内部,添加业务逻辑,如创建一个任务。1、SDK路径下,如LTE01R02A05_C_SDK_U\components\ql-application目录下新建一个工程文件夹,在文件夹内加入C文件和h文件以及CMakeLists.txt文件,如图。6、在ql_init文件中添加项目文件初始化函数。4、配置项目编译宏参数。原创 2024-06-14 17:48:59 · 671 阅读 · 0 评论 -
BLE芯片DA145XX系列:HOGP功能实现
DA145XX协议芯片支持配置HOGP功能。即模拟蓝牙键鼠之类的设备,实现和手机绑定后,靠近设备手机自动回连设备的功能。实现HOGP功能需要对默认SDK做特殊配置,具体流程如下:原创 2024-06-04 14:48:26 · 1159 阅读 · 0 评论 -
BLE芯片DA145XX系列:配置SDK支持多连接
Dialog的DA145XX系列BLE芯片可以配置允许多连接,需要修改SDK,下面主要说明如何实现多连接配置。1、新增宏定义:__EXCLUDE_ROM_APP_TASK__用于取消ROM里关于APP部分函数的调用,改为使用自定义的函数原创 2024-06-04 11:48:35 · 519 阅读 · 0 评论 -
BLE芯片DA145XX系列:自定义GATT服务配置
Dialog的BLE芯片可以配置通用GATT服务以及自定义GATT服务,下面主要说明如何实现GATT服务的配置、GATT数据收发、配置BLE单次发送最大数据包MTU。原创 2022-07-09 12:37:30 · 1113 阅读 · 2 评论 -
BLE芯片DA145XX系列:OTP读写、OTP Header
Dialog的BLE芯片基本都有OTP(One-Time-Programmable)存储器,即一次性写入的存储器,一旦写入之后,就无法修改。如DA14531,有32KB的OTP存储器。主要用来写入固化程序和保存一些重要的出厂参数。下面主要说明如何读写OTP存储器,以及OTPHeader的功能。1、使用官方提供的toolbox来使用可视化界面写入OTP2、程序中读写OTP3、OTP Header作用原创 2021-12-25 10:43:08 · 2204 阅读 · 0 评论 -
BLE芯片DA145XX系列:GPIO特殊配置
本文主要是dialog 的BLE芯片DA145XX的GPIO相关配置,适用于DA145XX系列芯片,如DA14531。1、硬件复位脚配置为GPIOP0_0默认为硬件RST,可以配置HWR_CTRL_REG寄存器屏蔽硬件复位脚,将其作为GPIO功能,否则P0_0无法正常使用。通过SDK里的库函数可以设置屏蔽或者恢复硬件复位脚P0_0。2、DEBUG脚配置为GPIOP0_2为SWCLK,P0_10为SWDIO,这两脚默认是输入,需要关闭DEBUG才能作为普通GPIO使用原创 2021-12-07 11:15:57 · 2632 阅读 · 0 评论 -
W5500以太网控制器芯片(一):ioLibrary库实现TCP服务器
W5500 芯片是一款集成全硬件TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。W5500 支持高速标准4线SPI接口与主机进行通信,该 SPI 速率理论上可以达到 80MHz。其内部还集成了以太网数据链路层(MAC)和10BaseT/100BaseTX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、掉电模式和网络唤醒功能。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket 可以进行8路独立通信,该8路Socket的通信效率互..原创 2021-07-12 16:36:29 · 4253 阅读 · 4 评论 -
W5500以太网控制器芯片(二):ioLibrary库实现TCP客户端
#W5500以太网控制芯片相关文章链接#上一篇文章:W5500以太网控制器芯片(一):ioLibrary库实现TCP服务器前面已经通过移植官方的ioLibrary库实现了TCP回环测试(W5500做tcp服务器),下面我们来实现W5500做TCP客户端,连接远程的TCP服务器。准备工具:a、电脑上装一个网络调试工具,做TCP服务器用b、一个路由器,后面电脑和W5500都要接到路由器上c、W5500+支持SPI接口的MCU或者SOCd、官方的ioLibrary库文件(上一篇文章中说明了下.原创 2021-07-13 10:29:40 · 2057 阅读 · 1 评论 -
W5500以太网控制器芯片(三):实现DHCP服务
#W5500以太网控制芯片相关文章链接#上一篇文章:W5500以太网控制器芯片(二):ioLibrary库实现TCP客户端如果要W5500的IP动态分配,则要实现DHCP功能,实现流程如下:准备工具(和上篇一致):a、电脑上装一个网络调试工具,做TCP服务器用b、一个路由器,后面电脑和W5500都要接到路由器上c、W5500+支持SPI接口的MCU或者SOCd、官方的ioLibrary库文件1、移植驱动除了之前引入的文件,还要将固件库里Internet文件夹下的DHCP文件夹的文件引原创 2021-07-15 09:58:41 · 4778 阅读 · 3 评论 -
W5500以太网控制器芯片(四):实现DNS功能
#W5500以太网控制芯片相关文章链接#上一篇:W5500以太网控制器芯片(三):实现DHCP服务使用W5500时,如果要连接的是域名,则连接TCP服务器前将要域名转成IP再进行连接,这时候就要用到DNS功能。...原创 2021-07-24 12:40:42 · 2064 阅读 · 1 评论 -
W5500以太网控制器芯片(五):实现FTP客户端
#W5500以太网控制芯片相关文章链接#上一篇:W5500以太网控制器芯片(四):实现DNS功能使用w5500通过以太网口可以实现FTP功能。首先要了解FTP的基本命令和通讯方式。FTP的本质是TCP连接,所以我们要实现一个TCP客户端,然后实现一些指定的FTP命令的发送和解析。FTP基本命令:命令 描述 ABOR 中断数据连接程序 ACCT <account> 系统特权帐号 ALLO <bytes> 为服务器上的文件存储器分配字原创 2021-08-24 10:26:27 · 2940 阅读 · 2 评论 -
W5500以太网控制器芯片(六):实现PING服务
#W5500以太网控制芯片相关文章链接#上一篇:W5500以太网控制器芯片(五):实现FTP客户端PING使用的是ICMP的协议,使用时最好先了解一下。下面实现一下使用w5500来ping外网的指定ip设备的流程。注意需要包含官方ioLibrary库的w5500和socket文件,具体可以参考本系列前面的文章,当然也可以自己实现上面调用的函数。头文件:#ifndef _PING_H_#define _PING_H_#include "w5500.h"#include "w5500原创 2021-09-04 09:11:10 · 2608 阅读 · 6 评论 -
LIS3DH 三轴加速度传感器使用流程及示例
LIS3DH是一个三轴震动传感器,可用于检测X、Y、Z轴上的加速度,以及设置阈值,在加速度超出阈值时触发中断。支持SPI和IIC读写。下面主要是IIC方式读写:一、寄存器读写流程首先硬件连接会决定该模块的IIC地址如果SAO脚接地,IIC地址为0X30(不包含最低位).如果接V3.3,则IIC地址为0X32(不包含最低位).这个器件地址很重要,因为读写寄存器都是要先写一下对应的器件地址,然后再写命令的注意先发送的器件地址只是前7位,最后一位决定的是读写位,0是写寄存器,1为读寄存器,原创 2020-10-12 10:57:20 · 16873 阅读 · 5 评论 -
STM32通过IAP实现固件升级的分析与示例
大部分MCU都可以通过IAP对片内flash进行读写来实现固件升级。这里主要是STM32如何实现IAP升级。不同内核的stm32方式可能略有不同.这里先说F1内核的IAP过程,这里以STM32F103C8T6做示例一、片内FLASH读写实现IAP,首先要实现片内FLASH读写1、擦除程序区,调用库函数FLASH_ErasePage可以按页做擦除int FlashErase(uint32_t addr){ uint8_t retry_time; uint8_t i; .原创 2020-12-26 09:18:49 · 4014 阅读 · 1 评论 -
华大HC32F系列MCU的IAP流程及示例
本文以HC32F072为例。华大的MCU的IAP的方式和流程基本和1、准备两个工程,1个BOOT,1个APP原创 2021-03-26 12:03:14 · 6303 阅读 · 7 评论 -
stm32 硬件IIC使用方法说明与示例---LIS3DH的IIC通信
出于某些原因,我们可能需要MCU进行速率较高的IIC总线通信,一般stm32的IIC默认传输速率是100kpbs,最大为400kpbs。现在大部分项目会使用程序IO模拟的IIC,使用方便,具体网上例子很多。这里我需要使用LIS3DH三轴加速度传感器,获取三个方向的加速度用于碰撞检测。这个是LIS3DH数据刷新速率的配置寄存器:出于某些原因,我需要达到500hz以上的数据刷新速率,所以ODR要配置成0b1000,三轴芯片输出1.6khz速率的加速度信息。因为一条信息包含x、y、z个字节的数据,原创 2020-10-14 18:22:41 · 10154 阅读 · 3 评论 -
QT实现串口调试助手(一)
一、安装QTCreator二、如果如果没有特殊编译器要求,可以直接使用自带的MinGW的32位编译器,也可以安装Visual Studio配置使用它的编译器,可以编译64位的。编译器会自动检测的,建议先安装Visual Studio,QT安装时会自动识别到...原创 2020-10-12 11:53:07 · 7270 阅读 · 3 评论 -
QT实现串口调试助手(二):实现基本串口功能
一、导入库1、在项目.pro文件中加入serialportQT += core guiQT += serialport2、引入qt中串口通信需要的头文件#include <QtSerialPort/QSerialPort>#include <QtSerialPort/QSerialPortInfo>二、配置串口初始化1、查找可用的串口。通过创建一个comobox,将可用串口的列表展示出来,并用于配置时选择要连接的串口原创 2020-11-10 11:24:43 · 6967 阅读 · 4 评论 -
QT实现串口调试助手(三):保存日志、QSS样式载入
上一篇:QT实现串口调试助手(二):https://blog.csdn.net/zhangfls/article/details/109593287原创 2020-11-20 11:16:43 · 3723 阅读 · 0 评论 -
QT实现串口调试助手(四):QSS设置主题、添加快捷命令列表
1、添加命令面板原创 2020-12-03 18:12:26 · 2347 阅读 · 3 评论 -
QT实现串口调试助手(五):ini文件存取串口信息
上一篇:QSS设置主题、添加快捷命令列表一般串口调试工具需要保存基本信息,这样重新打开后可以继续加载之前的配置,这里我们使用ini文件来读取保存串口参数。一、创建ini文件在某个目录添加一个后缀为ini的文件(最好是程序根目录),比如名为param.ini二、ini文件格式一般ini文件格式是类似下图的1、【】方括号可以配置一个分类,分类下可以配置属性2、属性的左值为属性名,右值为属性值三、读写ini文件1、添加头文件#include <QSettin原创 2020-12-17 11:36:56 · 2559 阅读 · 3 评论 -
QT实现串口调试助手(六):页面布局
工程源码:https://github.com/zhangfls/QT_UartAnalysisTool上一篇:INI文件存取串口信息之前没有设置页面布局,当进行放大缩小时,组件的位置还是保持原样,这样很不实用。所以要调整一下页面和组件布局1、添加horizontalLayout水平布局,将页面的组件分成3个部分:比例设置成1:6:3,当然想调成什么比例随意的2、对于中间部分的内容,使用gridLayout分成3行2列比例通过layoutRowStretch...原创 2021-01-09 13:10:01 · 1759 阅读 · 0 评论 -
QT实现串口调试助手(七):字体设置面板创建及窗体间传值
上一篇:QT实现串口调试助手(六):页面布局一般串口调试工具都有修改串口接收框字体的功能面板,我们也来加一个:1、先创建一个字体设置面板比如我们创建一个widget,命名为letterFormWindow类,QTcreator会自动生成.cpp、.h 和.ui文件2、在UI界面添加一些组件,如图:3、现在先回到主界面的文件编写,在主界面命令栏里添加一个快捷按钮QMenuBar *menuBar = ui->menuBar;QAction *lett...原创 2021-03-27 15:57:24 · 2451 阅读 · 3 评论 -
QT实现串口调试助手(八):HEX与字符串格式处理
上一篇:QT实现串口调试助手(七):字体设置面板创建及窗体间传值串口工具一般都会有HEX格式的收发处理,现在我们来给串口工具添上这一功能。这主要分为两类,一类是把串口工具收到的HEX格式数据,以十六进制字符串回显到接收面板。另一类是把发送面板上的十六进制字符串,转为HEX格式数据发送出去1、接收数据处理原先我们已经在主界面添加了HEX发送和接收框了,没有添加的话,添加一个即可然后更改一下原先的接收处理函数即可。//填入接收数据到面板void MainWindow::insertDataT原创 2021-06-26 10:25:23 · 8143 阅读 · 1 评论 -
BLE芯片DA145XX系列:BOOT启动时写入程序的实现
Dialog的BLE芯片很多都支持通过通讯接口在BOOT中写入程序,然后加载在RAM中运行。之所以这么做,主要是考虑芯片本身只有OTP的FLASH,升级通常通过外挂SPI的FALSH完成。但是考虑到成本问题,如果条件满足,完全可以将程序放在外挂的MCU里,每次上电启动时将程序写入,也可以起到相同的作用,同时BLE芯片的程序受控性更好,降低程序无法恢复的风险。下面是DA14531的BOOT启动描述和使用方法:一、启动方式二、启动时间三、通讯示例四、解决复位问题原创 2021-06-03 11:39:33 · 1141 阅读 · 0 评论