logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

基于PY32F003的DMA多路ADC采集

PY32F003 是一款基于 ARM Cortex-M0 + 内核的微控制器,主频高达 48MHz,拥有丰富的外设资源:​12 位精度 ADC,支持多通道采集​1 个 DMA 控制器,支持多种外设数据传输​丰富的 GPIO 接口,可灵活配置为 ADC 输入引脚​。

#单片机#stm32
基于STM32F103ZET6移植OPUS语音算法

移植过程:参考这个几个帖子使用资源:至少要64K的RAM和200K作用MCU才能实现编解码。STM32F103的64KRAM+512K勉强能用,但实际还是很悬,建议上STM32F40X系列更好。OPUS编解码需要43K的RAM,编码会申请57.5%*43K的RAM解码会占用42.2%*43K的RAM.同时编解码时还会根据复杂度申请堆,经过验证复杂度越高需要的堆就越高,同时可变波特率占用堆空间比固定

#stm32#算法
FATFS文件系统卡正常挂载文件,但fopen()函数打开卡死

结论:Fatfs需要比较大的栈空间,当栈单片机栈空间溢出时,单片机会跳到异常死循环,导致整个系统崩溃,解决方法:把栈空间由默认0400修改为1000的栈空间,就能正常读取。

#单片机#c语言
记录一下单片机进行SPI+DMA传输时出现卡死在获取状态BUSY位置

检测中断发现,SPI和DMA的中断优先级都是1,然后按键优先级别是1和编码器按键优先级别是0。①百度问题现象,发现有的人遇到的问题是因为DMA缓存数组的存储的RAM位置异常会导致这个情况,然后就检测map表,同时进行调整空间大小无效。好吧,中断按键中加HAL_DELAY()也有这种情况,就是系统滴答定时器的中断优先级比中断按键低就会出现这个现象。②刚好今天添加的内容的中断按键触发,之前使用轮询按键

#单片机#嵌入式硬件
STM32F103ZET6+SPI_W25Q16外部flash下载算法生成

下载算法的核心任务是借助调试工具( J-Link),把程序代码或者资源写入到外部 Flash 里。一般而言,该算法需要实现对外。

文章图片
#stm32#嵌入式硬件#单片机
PY32使用HAL库开机flash烧写第一次成功第二次失败问题解决

*核心点是hal库调用这个全局变量的标志位使能后没有清除,每次进入检查标志位直接返回HAL_BUSY,手动处理清除一下标志然后就可以正常运行擦除函数。感觉应该这是这个库的BUG。

#嵌入式硬件#单片机
基于PY32F003的DMA多路ADC采集

PY32F003 是一款基于 ARM Cortex-M0 + 内核的微控制器,主频高达 48MHz,拥有丰富的外设资源:​12 位精度 ADC,支持多通道采集​1 个 DMA 控制器,支持多种外设数据传输​丰富的 GPIO 接口,可灵活配置为 ADC 输入引脚​。

#单片机#stm32
基于STM32F103ZET6移植OPUS语音算法

移植过程:参考这个几个帖子使用资源:至少要64K的RAM和200K作用MCU才能实现编解码。STM32F103的64KRAM+512K勉强能用,但实际还是很悬,建议上STM32F40X系列更好。OPUS编解码需要43K的RAM,编码会申请57.5%*43K的RAM解码会占用42.2%*43K的RAM.同时编解码时还会根据复杂度申请堆,经过验证复杂度越高需要的堆就越高,同时可变波特率占用堆空间比固定

#stm32#算法
到底了