好久没写博客了,最近挺忙的。近来有些好玩的实现,网上的资料并不是非常详细,打算慢慢写下来,希望别人能少走一点弯路。因为希望提高ADC的采样率,这次我试着实现了一下三重ADC交替采样+DMA搬运至内存+TIM的TRGO触发采样(环境是stm32cubemx6.5.0和keil5) 首先打开cubemx进行基础设置(设置时钟树,RCC,SYS)然后设置ADC1(下图为具体设置,仅供参考)此处我们将ADC_Mode设置为Tripleregularsimultaneousmodeonly,并打开DMA连续请求(为了使DMA能够填满数组,按照我们的预期工作)外部触发源设置为TIM2的TRGO由于已经设置
好久没写博客了,最近挺忙的。近来有些好玩的实现,网上的资料并不是非常详细,打算慢慢写下来,希望别人能少走一点弯路。因为希望提高ADC的采样率,这次我试着实现了一下三重ADC交替采样+DMA搬运至内存+TIM的TRGO触发采样(环境是stm32cubemx6.5.0和keil5) 首先打开cubemx进行基础设置(设置时钟树,RCC,SYS)然后设置ADC1(下图为具体设置,仅供参考)此处我们将ADC_Mode设置为Tripleregularsimultaneousmodeonly,并打开DMA连续请求(为了使DMA能够填满数组,按照我们的预期工作)外部触发源设置为TIM2的TRGO由于已经设置
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT中FlexSPI外设不常用的读选通采样时钟源-loopbackFromSckPad。 最近碰到一个客户,他们在i.MXRT500上使能了FlexSPI->MCR0[RXCLKSRC]=2(即loopbackFromSckPad),这个选项字面上的意思是设置读选通采样时钟源为SCK引脚,这个选项在恩智浦官方的代码包里未曾使能过。客户在使用过程中遇到高频时SCK引脚被降压的问题(从正常的1.8V降至1.2V),那么这个loopbackFromSckPad选项到底是什么作用以及有什么使用限制呢?且听痞子衡道来:Note
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT中FlexSPI外设不常用的读选通采样时钟源-loopbackFromSckPad。 最近碰到一个客户,他们在i.MXRT500上使能了FlexSPI->MCR0[RXCLKSRC]=2(即loopbackFromSckPad),这个选项字面上的意思是设置读选通采样时钟源为SCK引脚,这个选项在恩智浦官方的代码包里未曾使能过。客户在使用过程中遇到高频时SCK引脚被降压的问题(从正常的1.8V降至1.2V),那么这个loopbackFromSckPad选项到底是什么作用以及有什么使用限制呢?且听痞子衡道来:Note
//源文件voidADCPhyConfig(){ RCC->APB2ENR|=1AHB1ENR|=1MODER|=(3PUPDR|=(3OSPEEDR|=(1APB2RSTR|=1APB2RSTR&=~(1CCR=1CR1=0;//CR1设置清零 ADC1->CR2=0;//CR2设置清零 ADC1->CR1|=0CR1|=0CR2&=~(1CR2&=~(1CR2|=0SQR1&=~(0XFSQR1|=0SMPR2&=~(7SMPR2|=7CR2|=1SQR3&=0XFFFFFFE0;//规则序列1通道chADC1->SQR3|=ch;ADC1->CR2|=1SR&1DR;//返回adc值}/
//源文件voidADCPhyConfig(){ RCC->APB2ENR|=1AHB1ENR|=1MODER|=(3PUPDR|=(3OSPEEDR|=(1APB2RSTR|=1APB2RSTR&=~(1CCR=1CR1=0;//CR1设置清零 ADC1->CR2=0;//CR2设置清零 ADC1->CR1|=0CR1|=0CR2&=~(1CR2&=~(1CR2|=0SQR1&=~(0XFSQR1|=0SMPR2&=~(7SMPR2|=7CR2|=1SQR3&=0XFFFFFFE0;//规则序列1通道chADC1->SQR3|=ch;ADC1->CR2|=1SR&1DR;//返回adc值}/
目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)Linux环境和LibOpenCM3项目模板AIR32F103(三)Linux环境基于标准外设库的项目模板AIR32F103(四)27倍频216MHz,CoreMark跑分测试AIR32F103(五)FreeRTOSv202112核心库的集成和示例代码AIR32F103(六)ADC,I2S,DMA和ADPCM实现的录音播放功能关于使用AIR32的ADC,I2S和DMA实现简单的语音录音和播放功能,以及使用ADPCM编码提升录音时长.使用的MCU型号为AIR32F103CCT6.如果用CBT6,对应的
目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)Linux环境和LibOpenCM3项目模板AIR32F103(三)Linux环境基于标准外设库的项目模板AIR32F103(四)27倍频216MHz,CoreMark跑分测试AIR32F103(五)FreeRTOSv202112核心库的集成和示例代码AIR32F103(六)ADC,I2S,DMA和ADPCM实现的录音播放功能关于使用AIR32的ADC,I2S和DMA实现简单的语音录音和播放功能,以及使用ADPCM编码提升录音时长.使用的MCU型号为AIR32F103CCT6.如果用CBT6,对应的
当需要生成随机点且要求随机点自然均匀的分布时,使用泊松盘采样就较为适合。但该方法与统计学上的概念关联不大,这个只相当于点在面积上服从泊松分布,而实现这个结果有很多做法。 最终效果: 圆形为含半径的点,圆形的中心代表生成点 B站有一个不错的搬运教程(Bridson方法):https://www.bilibili.com/video/BV1KV411x7LM 另外Bridson文章里说蓝噪声(BlueNoise)也基于此方法生成 我做了些修改,代码如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;
当需要生成随机点且要求随机点自然均匀的分布时,使用泊松盘采样就较为适合。但该方法与统计学上的概念关联不大,这个只相当于点在面积上服从泊松分布,而实现这个结果有很多做法。 最终效果: 圆形为含半径的点,圆形的中心代表生成点 B站有一个不错的搬运教程(Bridson方法):https://www.bilibili.com/video/BV1KV411x7LM 另外Bridson文章里说蓝噪声(BlueNoise)也基于此方法生成 我做了些修改,代码如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;