- 博客(18)
- 收藏
- 关注
原创 封装 ring_buffer,在程序中方便使用缓存
(3)ring_buf_get_claim 和 ring_buf_get_finish 是一对的,用于取出并使用缓存中的数据,功能与 ring_buf_get 相似,但这对函数更加高效,因为它没有拷贝;需要注意的是需要先使用 ring_buf_get_claim 再调用 ring_buf_get_finish。(2)ring_buf_put_claim 和 ring_buf_put_finish 是一对的,用于存入数据到缓存中,功能与 ring_buf_put 相似,但这对函数更加高效,因为它没有拷贝;
2024-04-11 17:53:16 238
原创 btstack移植到stm32f103问题记录
通过打断点、查看变量值发现经常出现期望接收size个数据,但只接收了size-1个字节,也就是少了一个字节数据,所以导致不会产生DMA中断,这个问题还需继续排查,解决(2月17日晚,经排查发现在波特率较高时,串口DMA经常接收数据不全,待证明协议栈是因为使用了HAL库导致效率较低,而没有及时调用串口DMA接收数据,导致数据丢失)。(这里卡了好久,估计有一天半,主要是之前解决问题的思路不对,总是在驱动那里找问题,找了很久也没发现问题,后来改变思路,在L2cap层找问题,几个小时就发现问题了)。
2023-07-11 19:27:50 469
原创 音频采样率转换处理
样条插值法是一种更加复杂的插值方法,它假设采样点之间的信号是光滑的,通过已知的多个采样点,可以推算出它们之间的任意一个采样点。线性插值法是一种简单的插值方法,它假设采样点之间的信号是线性的,通过已知的两个采样点,可以推算出它们之间的任意一个采样点。在音频处理中,插值法是一种常用的方法,用于将采样率较低的音频数据转换为采样率较高的音频数据。低通滤波(Low-pass filtering):通过低通滤波器将高采样率的音频数据中高于低采样率的频率部分滤掉,得到低采样率的音频数据。
2023-03-29 16:41:52 2586
翻译 Zephyr USB设备控制器驱动程序文档
USB设备控制器驱动层实现低级别控制例程,直接处理硬件。所有设备控制器驱动程序都应实现include/zephyr/drivers/usb/usb_dc.h中描述的API。这允许在不更改上层的情况下集成新的USB设备控制器。使用此API无法在运行时支持多个控制器实例。USB设备控制器API。
2023-03-18 11:31:32 368
翻译 Zephyr USB 设备栈文档
USB设备栈是USB设备控制器驱动程序和USB设备类驱动程序或客户应用程序之间的硬件独立接口。它是LPCUSB设备堆栈的一个端口,随着时间的推移已经被修改和扩展。它提供以下功能:(1)使用设备控制器驱动程序提供的api与USB设备控制器进行交互。(2)响应标准设备请求并返回标准描述符,本质上处理“第9章”处理,特别是来自通用串行总线规范修订版2.0的表9-3中的标准设备请求。(3)提供USB设备类或客户应用程序使用的编程接口。
2023-03-18 10:25:34 517
原创 btstack源码分析---HCI层与硬件接口的数据传输
从源码层面分析HCI层是如何从uart读取数据、HCI层的数据怎样传给uart最后发给蓝牙Controller的。
2023-02-11 15:39:53 448
原创 vue开发环境搭建与项目创建
1. 安装 node.js(1)安装包下载(官网下载比较慢,推荐使用下面的链接)http://nodejs.cn/download/
2022-02-06 09:02:07 166
原创 Centos7下部署启动springboot项目
1、先下载免安装配置的jdk,解压放在root/jdk_path//下wget https://repo.huaweicloud.com/java/jdk/11.0.2+7/jdk-11.0.2_linux-x64_bin.tar.gz tar -zxf jdk-11.0.2_linux-x64_bin.tar.gz -C jdk_path/2、上传springboot生成的jar包,假如名称为 kwunphi-backstage-0.0.1-SNAPSHOT.jar3、启动springboot
2021-07-28 15:51:57 461
原创 python线程封装
1.新建mythread.py文件,线程封装成类,再建个函数调用import threadingclass myThread(threading.Thread): def __init__(self, name, funtion): threading.Thread.__init__(self) self.name = name self.funtion = funtion def run(self): p
2021-07-14 20:23:11 392
原创 Spring注解开发
1.spring原始注解spring原始注解主要是替代的配置注解说明@Component使用在类上,用于实例化Bean@Controller使用在Web层类上,用于实例化Bean@Service使用在service层类上,用于实例化Bean@Repository使用在dao层类上,用于实例化Bean@Autowired使用在字段上,用于根据类型依赖注入@Qualifier结合Autowired一起使用用于根据名称进行依赖注入@Resou
2021-07-10 17:18:59 75
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人