【灵动微电子MM32 eMiniBoard】+ MM32测试之MM32eMiniBoard036开发板
今天抽时间出来看看mm32的板子。刚拿到板子时,就跑到官网(https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_mainstream/mm32f3270/),发现使用的和stm32类似的库文件,这点国产32都差不多。因为本人用过AT32,gd32,hk32,n32,stm32等。废话不多说了,直接进入正题。一、测试情况表
一、测试简况
原理图,使用手册,官方例程都是上手最快的资料。官方例程如下:1.模拟看门狗测试调节可变电阻RV1,电压表测试电容C22两端电压1.16V,转换ADC值为1.16/3.3*4096≈1440.配置如下,则ADC不会进入中断,因为1461在0到2772范围之内。AD值:1461(由于ADC误差以及电源纹波等,通常需要进行滤波)当调节可变电阻RV1使ADC值不断增大直至>=2722,则进入中断:如下图的断点,ADCVAL接近2772。
本帖最后由 七毛钱 于 2021-11-10 09:47 编辑
2.ADC+DMA 多通道扫描测试官方例程:ADC_DMA_MultiChan_Interrupt,每次扫描3个ADC通道后进入DMA1_Channel1_IRQHandler中断。如图:主要是DMA配置如下图:
实际情况会让ADC不断通过DMA更新数据。比如使用中断,在每次进入中断则刷新整个varADCavarage数组,这个处理ADC数值时,会有足够多的数据。可以在中断中就行ADC值处理(滤波等),但实际不推荐,一般更新处理标志。3.DMA 半传输完成标志测试初始化如图:添加代码:
DMA半传输完成中断调试如下:
DMA传输完成中断:
这里为了测试才在中断中关闭ADC : ADC_SoftwareStartConvCmd(ADC1, DISABLE);3.ADC+DMA+TIM根据官方例程:ADC_TIM1Trig_DMA_MultiChan_Interrupt,程序作部分修改结果如图:使DMA更新整个varADCavarage数值,使用宏定义方便修改ADC通道以及每个ADC通道缓存大小。#define ADCSCANNUM 6#define AVERAGELEN 20
使用定时器主要是把软件触发变成定时器触发。CAN+UART4.CAN 自发自收 + UART 打印根据官方例程:CAN_Filter_20Groups,做相关修改: 1. 主函数:2. CAN 配置: CAN_Peli_InitStruct.STM = ENABLE; //开启Pelican的自测模式
测试现象如下: CAN发送信息,进入中断后,gRxFlag标志置1,从而到UART打印,这里发现打印信息顺序不正常。另外can发送的信息也要对应,因为设置了过滤器。左边的输出信息是打断点输出的:CANID:0x188 Data: aa;输出信息是正确的,可能是缓冲问题吧!5.EXTI根据官方例程:EXTI_Key 直接测试。按下Key4,进入EXTI0中断.如下图:
6.FLASH根据官方例程:FLASH_Program,结果如下图:先擦除扇区Bank1的数据:FLASH_ErasePage(BANK1_WRITE_START_ADDR);重新写入扇区Bank1的数据:gFlashStatus = FLASH_ProgramWord(BANK1_WRITE_START_ADDR, gData);读出扇区Bank1的数据:data = *(__IO u32*) BANK1_WRITE_START_ADDR;7.I2C官方例程:I2C_EEPROM_DMA_Master_Interrupt,一直卡在下图,奇怪!!!
由于项目较忙,后面继续更新!另外,不足请指出,不胜感激!
不错,谢谢楼主分享。 学习一下 现在还送板子吗 可以使用iar开发吗 MM32 eMiniBoard看着非常不错。 有相关的资料可以下载吗 AT32,gd32,hk32,n32,stm32用的真多。 板载资源真是多呢。 有RISC-V的芯片吗? 这个是多大的flash呢? 开发库是怎么建立的? 函数库在哪里下载? 太厉害了,测试这么多
牛气~~ 谢谢lz分享,很有用