分类 C/C++编程 下的文章 - 田帅康学习笔记

ESP32-CAM 上传图像数据到网络

ESP32-CAM上传图像数据到Python上位机预防踩坑放在前面:目前安信可官方版的CAM模块已经停售,库存货比较贵,市面上的都是仿制的,质量良莠不齐,给开发带来了很多困扰,经过实际测试,发现山寨货主要有以下几个坑:1、发热严重,不加散热片长时间运行几乎到了烫手的地步,加上散热片也不会好很多2、在分辨率大于640*480后,信号变得异常的差,丢包严重,但如果用手捏着天线,数据传输又会稳定很多第二

- 阅读全文 -

MQTT协议实现公网对讲

使用MQTT做一个公网对讲机上一篇博客中,使用ESP32与ESP-NOW协议做了一个短距离对讲机(链接),发布了一个视频在B站评论区中,很多B友希望可以实现无限距离对讲,这样的话需要服务器转发,刚开始我想使用python写一个TCP或者UDP的转发功能,但是考虑到很多小白没有公网服务器,并且也不会使用python,于是我想到了互联网中的MQTT协议,MQTT协议天生为转发而生;MQTT协议是TCP

- 阅读全文 -

周五!记录一下OPUS移植各个参数影响

工作中需要使用到OPUS压缩音频,OPUS是一个开源音频编码方案,多种芯片支持OPUS编码,WINDOWS10上也自动支持,这是他的一些特性比特率从 6 kb/s 到 510 kb/s‎ ‎采样率从 8 kHz(窄带)到 48 kHz(全频)‎ ‎音频每帧时长从 2.5 ms 到 60 ms‎ ‎同时支持恒定比特率 (CBR) 和可变比特率 (VBR)‎ ‎从窄带到全频段的音频带宽‎ ‎支持语音和

- 阅读全文 -

使用ESP32做一个实时语音对讲机

最近突发奇想,制作一个数字式的音频通信系统,顺便学习一下I2S与ESP-NOW协议刚开始查阅资料,发现油管上的已经有人做过了,但是使用的C++,并用了数据流的处理流程,比较晦涩难懂,代码量也很大,属于是炫技的作品,我这篇文章使用C重新写一遍,并且代码量大大降低,也很容易理解,let's get started!上一篇博客中已经详细讲解了I2S通信协议,在ESP32中有两个硬件I2S,我们可以通过简

- 阅读全文 -

I2S协议是什么?

最近在做一个验证性的东西,使用无线完成语音通信首先需要大概了解一下音频信号,音频信号主要有以下几个概念点:采样率:一秒钟采集多少个音频信号,常见的有8K、16K、44.1K等,采样率越高,声音的细节都越好。数据深度:数据的深度,一个数据有多少位,常见的有8bit、16bit、24bit、32bit等,位数越高,声音的线性度越好。音频声道:单声道、双声道,带耳机打游戏时,可以听到敌人的脚步声吗,就是

- 阅读全文 -

使用ESP32与LVGL制作一个便携式的串口助手

在嵌入式工作中,在某些情况下查看单片机打印输出不是很方便,比如狭小的空间,室外测试等情况,为此,利用LVGL的各个控件,设计了一个便携式的串口助手。lvgl移植使用也很简单,只需要配置对应的显示接口和输入接口,一般来讲,使用在屏幕上开窗的方式,比画点的方式帧速率提高很多倍,触摸输入方面,根据相应的端口配置相应的硬件层输出就可以啦!lvgl使用C语言编写,因此可以运行在多个平台上,嵌入式,win、l

- 阅读全文 -

一个简单的log打印代码

在某些情况下调试中,我们希望输出更详细的信息,可以通过C语言给出的宏定义来简单实现,具体可以打印出当前的文件与代码行数,示例如下:#include <stdio.h> #define DEBUG_ENABLE #ifdef DEBUG_ENABLE #define DEBUG(format,...) printf("File: "__FILE__", Li

- 阅读全文 -

最近遇到的关于STM32串口的问题

1、串口重定向问题,在MDK与STM32cubeide中,存在编译器不同的问题,因此MDK上使用的串口重定向在cubeide上不能正常工作,使用这个代码可以实现全兼容。#ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&

- 阅读全文 -

今天碰到的DMA多通道采集的问题

今天使用STM32L432开启多路ADC采集,本以为很简单结果还是遇到了大坑,一直卡死在HAL_ADC_Start_DMA函数,需要注意以下问题:1、DMA开启循环采集模式,字节选择半字,ADC中断关掉。2、在cubemx中,DMA中断无法关闭,在MX_DMA_Init()函数中关掉DMA的中断://HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);

- 阅读全文 -

STM32中使用低功耗的延时方法

上文说了STM32L4的几种低功耗模式,将其应用起来作为一个低功耗的延时方案。为什么使用低功耗定时器,在追求长时间续航时,单片机有时需要切换到低功耗模式或者停止模式下,在这种模式下,系统主时钟关闭,有一些依赖于系统主时钟的应用程序,可能会发生出现某些奇怪的情况。因此在休眠唤醒后对主时钟进行校准,防止出现莫名其妙的BUG。LPTIM全称:Low Power TIM ,我们将其运行在计数模式下,其时钟

- 阅读全文 -

最新文章

最近回复

  • 树莓: EMQ默认是有流量限制的,你需要调整流量限制
  • 在线: 我搭建了服务器,怎么发送给语音还是一卡卡的
  • 树莓: 哈哈 不要在意这些细节
  • 青山: 手动点赞
  • 在线: 我的也是这样的,请问怎么解决
  • 在线: 请问你们解决了吗,我用的EMQX Cloud服务器也是这样啊
  • Lexsion: 你在Github上说是老王家买的。。
  • mbdbk: 大佬,能发一下MQTT服务器代码吗? 支付报酬的。我的邮箱 mb...
  • 观潮客: up主,这个带宽限制哪里配置啊,谢谢
  • 观潮客: 我也遇到了同样的问题,就是只有吱吱声音,请问你解决了吗?

分类

标签

归档

其它