- 博客(68)
- 收藏
- 关注
原创 蓝牙开发笔记(BlueTooth,BLE,CH592)
最近在开发集成蓝牙模块的MCU,选来选去选择了CH592。之前用的是MCU+蓝牙透传芯片来做。官方链接下面有资料下载。买了一块CH592EVT,下载好资料和安装集成开发环境(MounRiver Studio),下载工具WCHISPTool。
2025-12-19 14:06:22
866
原创 迪文串口屏(DMG48270C043_03WTC+DGUS II)使用记录
对于迪文,还是那句话:“用户整理的资料比官方强,不知道官方在想什么?2024之后文档稍有改善。
2025-06-03 11:33:22
1734
原创 T113S3学习记录—软件说明(三)
自己编译的镜像:在SDK根目录下的out/目录,t113_linux_evb1_auto_uart0.img。重启开发板,在U-Boot倒计时前按下Ctrl+c进入U-Boot菜单,输入1进入SD卡更新子菜单。PhoenixSuit,进入一键刷机,选择镜像,选择分区擦除升级。镜像名字不能随意更改。开发板进入U-Boot,输入fastboot。,电脑自动弹出烧写确认,点击是开始烧写。得在开发板里面有镜像的情况下,更新。开 发 板 配 套 镜 像。天嵌科技重构了U-Boot。开发板进入U-Boot,输入。
2025-04-17 15:05:38
1308
原创 T113S3学习记录—硬件说明(二)
序号功能接口数量接口说明111、支持双路8位LVDS,1080P支持24bit,1080P3、MIPI_DSI,4通道,1080PLVDS、RGB和MIPI_DSI引脚复用。2Ethernet1单网口一路千兆输出3UARTS6UART3为调试串口;其他串口有复用。4SDIO≤24位总数据线5Audio1路立体声耳机输出1路MIC1路MICIN3PN/P1路LINEINL/R1路FMINL/R等前置音频接口6USB Host1USB2.07。
2025-04-17 14:31:28
3243
原创 T113S3学习记录—开发板介绍(一)
双核ARM Cortex-A7单核Hifi4 DSP主频1.1GHz内置128M DDR3系统Linux内核文件系统GUIQt5.15.4驱动支持DDR3+eMMCGPIOUARTSPII2CSDIOGMAC+EMACUSB2.0KEYPHONEOUTPRTC4GWIFIRGB DSIMIPI DSI。
2025-04-16 14:29:41
1520
原创 Linux字符设备驱动开发
字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。Linux里面一切皆文件,驱动设备表现就是一个/dev/下的文件,如/dev/led,应用程序调用open函数打开一个设备的时候,比如led。应用程序通过write函数向/dev/led写数据。关闭设备close。编写驱动的时候,需要编写驱动的open、close、write函数。字符设备驱动struct file_operations。写驱动的时候要考虑应用开发的便利性。驱动分框架,要按照驱动框架来编写。
2024-08-09 16:57:45
1999
原创 STM32CUBEMX+PWM问题记录
解决:电路是默认低电平,我之前这个CH Polarity设置的是HIGH,所以被拉高了,设置成LOW就可以了。问题描述:使用TIM2的通道3产生PWM波形,产生n个数量的波形后,在停止的时候会有一个尖峰。怀疑是自动重载值临界的时候有问题,对重载值多减一个值,但还是有这个问题。
2024-08-09 16:57:02
708
原创 FPGA程序设计
me)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。这段时间称为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是稳定到0或者1,是随机的,与输入没有必然的关系。在FPGA系统中,如果数据传输中不满足触发器的Tsu和Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery。
2024-07-02 14:47:57
1012
原创 Zynq—按键控制LED灯闪烁
ZYNQ 的 IO包括对外连接的GPIO和内部 PS 与 PL 通信的AXIO。其中对外的 GPIO 又分为两种:MIO和EMIO。MIO 和 EMIO 只是 GPIO 信号的两种接口, MIO直连到PS(数量有限), EMIO 则是PS 扩展到 PL,从PL 接出的 I/O。EMIO 依然属于 PS,只是连接到了 PL,再从 PL 输出信号。所以 MIO 不需要管脚约束,而 EMIO 需要管脚约束。I/O控制器信号的 I/O复用是不同的, 也就是说,一些 IOP(I/O Peripheral)信号。
2024-07-02 14:45:07
1625
原创 Linux-应用编程学习笔记(字符串处理)
正则表达式通常被用来检索、替换那些符合某个模式(规则)的字符串,正则表达式描述了一种字符串的匹配模式(pattern),可以用来检查一个给定的字符串中是否含有某种子字符串、将匹配的字符串替换或者从某个字符串中取出符合某个条件的子字符串。gets和scanf区别:1、gets只以回车换行符为分隔符,scanf以空格,换行符,TAB的名号都为分隔符。2、gets读取的时候,会丢弃回车换行符,scanf不会讲分隔符读走丢弃。sizeof 和 strlen 的区别。
2024-06-11 10:58:02
579
原创 STM32-CAN
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。异步半双工。
2024-06-11 10:57:23
1201
原创 zynq-7015启动分析及裸机BootLoader编写(未完待续)
从APP(download区)回到BootLoader下载新的APP(download区),再到新APP(download区)运行。尝试了直接写,读出来值不对,查了好多资料,也没说到底怎做。调试的时候,可以在FSBL工程/src/fsbl_debug.h添加宏定义,可以看到启动过程中的调试信息。程序框架搭完了,网络连接不上,还没找到原因,原来的程序就行,新建的程序不行,使用的还是同一个bsp。学到了一个东西,这个地方可以调整,可以把文件烧到不同的地方。测试写入IP地址,确实没问题。升级完成,成功切换了!
2024-06-03 15:03:19
1820
1
原创 STM32启动过程分析
源码含义:定义一个数据段,名字为 RESET,READONLY表示只读。EXPORT表示声明一个标号具有全局属性,可被外部的文件使用。这里是声明__Vectors和 __Vectors_Size 三个标号具有全局性,可被外部的文件使用。DCD 0;Reserved;
2024-05-28 14:17:22
989
原创 Linux-应用编程学习笔记(三、文件属性和目录)
1、普通文件(ls -l 文件,权限前边第一个"-"代表普通文件;stat 文件)文本文件:ASCII字符二进制文件:数字0/12、目录文件(‘’d):文件夹3、字符设备文件(‘c’)和块设备文件(‘b’):驱动文件4、符号链接文件(‘l’):快捷方式文件5、管道文件(‘p’):进程间通信6、套接字文件(‘s’):进程间通信(网络通信)
2024-05-22 11:19:00
1132
原创 Linux-应用编程学习笔记(二、文件I/O、标准I/O)
stdio.h>虽然标准 I/O 和文件 I/O 都是 C 语言函数,但是标准 I/O 是标准 C 库函数,而文件 I/O 则是Linux系统调用;标准 I/O 是由文件 I/O 封装而来,标准 I/O 内部实际上是调用文件 I/O 来完成实际操作的;可移植性:标准 I/O 相比于文件 I/O 具有更好的可移植性,通常对于不同的操作系统,其内核向应用层提供的系统调用往往都是不同,譬如系统调用的定义、功能、参数列表、返回值等往往都是不一样的;
2024-05-21 16:09:54
1052
原创 Linux-应用编程学习笔记(一、应用编程概念)
系统调用(system call) 其实是提供给应用层的应用编程接口(API) , 是 Linux 应用层进入内核的入口。通过系统调用, Linux 应用程序可以请求内核以自己的名义执行某些事情,譬如打开磁盘中的文件、读写文件、关闭文件以及控制其它硬件外设。
2024-05-21 09:52:02
398
原创 zynq-7015使用lwip-tcp远程对QSPI进行更新、QSPI FLASH启动
Vivado 2018.3、xc7z015clg485-2、小梅哥FPGA开发板、BOOT.bin(这个文件包含了bitstream文件,工程.elf,和FSBL.elf)、正点原子领航者《41_qspi_update_tcp》例程。
2024-05-16 16:19:20
3110
6
原创 Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(三)
配置完成之后, ACM9238 模块开始采集数据, 将ACM9238 模块采集的数据通过网口传输到电脑。电脑端将接收到的数据进行保存, 然后通过 MATLAB 进行进一步的分析。通过电脑上的网络调试助手, 将命令帧进行发送, 然后通过 ACZ7015 开发板上的以太网芯片接收, 随后将接收到的数据转换命令, 最终实现对 ACM9238 模块的采样频率、 数据采样个数以。MATLAB:ADCdata_to_wave_v2_2.m 文件。注:要把这个软件放到D:MFC_Data中。
2024-03-05 13:09:48
3649
8
原创 Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)
(为了在时钟信号的上升沿/下降沿取数据时,取得数据刚好是数据信号 rgmii_rxd 的正中间, 使得采样的数据处于最稳定的状态。用户可以在电脑上通过网口调试工具进行指令的下发,并以文件的形式保存接收到的数据,然后使用MATLAB软件进行进一步的数据处理分析。采样上限50Msps,如果期望以1Msps 的采样速率采样, 则只需要每间隔 50 个采样数据取一个结果存储或使用, 其他 49 个数据直接舍弃。控制ADC的采样速率,将12位数据转换为16位数据。将以太网接收到的数据进行解析, 得到控制命令。
2024-03-05 10:46:00
3799
2
原创 Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(一)
fifo2axi4 为 AXI4 接口转换模块,负责fifo 与 axi4 接口间的转换, 将写侧 FIFO 里的数据读出然后存储在 DDR 存储器以及将 DDR 存储器读出的数据存放到读侧 FIFO 缓存。fifo_axi4_adapter 负责FIFO接口到AXI4接口的转换,FIFO中的数据可以通过该模块写入PS端,PS端的数据也可以由该模块接收写入FIFO。在 Vivado 的 Source 窗口中,出现了新配置生成的 IP 核文件mig_7series_0(mig_7series_0.xci)。
2024-03-01 09:51:55
3967
3
原创 淘晶驰串口屏开发记录
项目参数型号尺寸4.3寸触摸类型电容触摸主控芯片型号通讯方式串口(RX-TX,TX-RX)编程语言陶晶驰脚本语言供电电压5V分辨率480x272。
2024-02-29 11:12:59
3572
1
原创 Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(前导)
DDR=Double Data Rate双倍速率,DDR SDRAM=双倍速率同步动态随机存储器,人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。,ARM CPU的程序可以在该DDR3中运行,PS部分的DDR3存储器使用,不需要,也不能调用MIG IP来控制,只需要在设计中添加ZYNQ7 Processing System 组件,并配置好DDR相关的参数,即可使用。PS部分的DDR3主要用作。
2024-02-29 08:06:19
4367
原创 NRF52832-扩展广播
我想要设置广播名称为 “一二三四五”,当广播名称为FULL_NAME时,但是广播显示还是“一?”是乱码,后来打开nrf connect观察广播,在没连接的时候,点击一下,看了一下显示Shortened Local Name :“一?但是有个问题就是 init.config.ble_adv_extended_enabled = true;之后,搜不到蓝牙了。后来发现BLE_GAP_ADV_SET_DATA_SIZE_MAX = 31;应该是广播信息超过了,导致名称显示乱码。
2023-07-27 08:28:04
670
2
原创 嵌入式编程——节省内存空间
一、逻辑1.在必要时,用switch替代if。2.根据情况减少死循环时间。3.重复的操作用函数替换。4.判断条件能合并的合并。二、变量1.减少结构体中浪费的空间。字节对齐。2.将全局变量改为局部变量。3.结构体使用位域定义变量。4.根据数据大小定义变量。...
2022-05-14 15:31:22
417
原创 条码---知识
交叉25码(Interleaved Two of Five):0~9,当条码字符所表示的字符个数为奇数时,应在字符串左端添加“0”。交叉二五条码容易产生因信息丢失引起的误读。当扫描路径没有经过两个空白区的时候,容易把一个条码符号的条与空当成起始符或终止符而引起信息丢失或译码错误。因此交叉二五条码常用于标识固定长度的字符,此时译码器或计算机只接收固定长度的信息,短的数据信息可在开头加“0”字符以达到固定长度。另外交叉二五条码常采用保护框来防止不完全扫描而产生的数据误读。...
2022-05-11 11:10:30
330
原创 Keil堆栈设置注意事项
引用:STM32栈stack 堆栈 注意事项 Stack_Size EQU 0x000004001.定义了几个结构体,其中每个机构体都有二维数组,并且二维数组非常大,例如a[5][3300]。2.发现结构体不能malloc及初始化。3.查找网上资料发现,Heap_Size 太小了。4.看GD32启动文件,startup_gd32f10x_hd.s5.默认,Stack_Size EQU 0x000002000和Heap_Size EQU ...
2021-11-24 14:18:38
7878
5
原创 SE96X、CM500-I27条码扫描引擎使用经验
亿嘉电子的条码扫描引擎使用一样的操作。设置前后缀自定义前缀 0x69自定义后缀 0x6807 C6 04 08 00 68 41 FE 7E这是设置后缀为"A"的两条指令第一条指令红字部分根据需求选择第二条指令红字部分 68 表示后缀,41 是十六进制的"A"校验位计算:前面指令总和的补码,高位字节在前,低位在后。效验计算方式:效验前所有字节相加得出总和(不含两字节效验位),总和按位取反并加1后得出的就是效验码。如:05 D1 00 00 01相加得出总和是:0.
2021-09-22 10:51:50
843
原创 CD74HC405×
Ti公司根据输入选择通道。引脚:CD74HC4051输入状态 开启通道 Enable S0 S1 S2 L L L L A0 L L L H A1 L L H L A2 L L H H A3 L H L L A4 L H L H A5 L H H L A6.
2021-08-09 16:05:56
1067
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅