本帖最后由 呐咯密密 于 2021-12-21 15:46 编辑
前言
首先恭喜国民技术入驻21IC,同时感谢国民技术提供测评机会。MCU的功能很多,本人技术有限,摘取部分功能进行测评。
开箱
无论哪款开发板,我们首先都得从外观开始,始于颜值,终于性能。
收到快递,大大的箱子,里面竟有一块裸板和数据线,这不是槽点,抛开板子不谈,给了数据线,就是朋友。
关于颜值,说实话,这块板子颜值并不算高,底色大众,版面清爽(其实就是堆料太少),整块板子的外设一眼可见,电源,烧录器,LED,按键以及引出的IO。在相比较其他的测评开发板,这块板子的诚意不足。个人觉得板子的体积可以压缩一下,会显得整体结构更为紧凑,看起来会更舒适。在手头没有其他外设的情况下,可测评的东西太少,所以重点放在这块MCU上面。
上电之后,D4灯太亮了,电阻其实可以更大点,盯着看眼睛受不了。值得夸赞的是按键的手感很是舒适。
性能:
内核 CPU
― 32 位 ARM Cortex-M4 内核+ FPU,单周期硬件乘除法指令,支持 DSP 指令和 MPU, 最高主频 108MHz, 135DMIPS | 属于超值型,主频108偏低。
定时器测试:
在进行定时器测试时,直接打开官方资料包的例程。
void TIM_Configuration(void)
{
/* Compute the prescaler value */
PrescalerValue = 0; //(uint16_t) (SystemCoreClock / 12000000) - 1;
/* Time base configuration */
TIM_TimeBaseStructure.Period = 65535;
TIM_TimeBaseStructure.Prescaler = 0;
TIM_TimeBaseStructure.ClkDiv = 0;
TIM_TimeBaseStructure.CntMode = TIM_CNT_MODE_UP;
TIM_InitTimeBase(TIM1, &TIM_TimeBaseStructure);
/* Prescaler configuration */
TIM_ConfigPrescaler(TIM1, PrescalerValue, TIM_PSC_RELOAD_MODE_IMMEDIATE);
/* TIM1 enable update irq */
TIM_ConfigInt(TIM1, TIM_INT_UPDATE, ENABLE);
/* TIM1 enable counter */
TIM_Enable(TIM1, ENABLE);
}
我将预分频改为107,周期设为1000,我自己觉得应该是1ms进一次定时器中断,然后根据工程中的readme文件,准备将示波器接到PC6进行测试。
结果找不到PC6,封装太小,不配合官方demo,于是自己动手加一个PC14,将中断函数中的IO也换成PC14。示波器接上发现是2ms进行一次IO翻转。于是去找一下文档,值得称赞的是文档纯中文,在文档编译方面,国民技术真的很良心,终于不是那些国产芯片,非得搞一些英文文档的难受操作。
但是舒适的时间短暂,在看到时钟树后就有点难受了。
108M的主频分到APB2只有54M,分给APB1就只有27M了。不知道为啥这样操作,本来主频就偏低,结果分到APB总线又低了好多。不过解决了我定时器的问题,因为TIM1在APB2上,所以预分频因子改为53便可。最终效果如下:
void TIM_Configuration(void)
{
/* Compute the prescaler value */
PrescalerValue = 107; //(uint16_t) (SystemCoreClock / 12000000) - 1;
/* Time base configuration */
TIM_TimeBaseStructure.Period = 1000;
TIM_TimeBaseStructure.Prescaler = 0;
TIM_TimeBaseStructure.ClkDiv = 0;
TIM_TimeBaseStructure.CntMode = TIM_CNT_MODE_UP;
TIM_InitTimeBase(TIM1, &TIM_TimeBaseStructure);
/* Prescaler configuration */
TIM_ConfigPrescaler(TIM1, PrescalerValue, TIM_PSC_RELOAD_MODE_IMMEDIATE);
/* TIM1 enable update irq */
TIM_ConfigInt(TIM1, TIM_INT_UPDATE, ENABLE);
/* TIM1 enable counter */
TIM_Enable(TIM1, ENABLE);
}
得到波形如下:
可以看到,定时器还是很准的。
故事到这里本该结束,但是从上次开始,每一块开发板都得经受超频的测试。
改变主频,超频测试。进行到这里遇到了问题,demo的时钟配置我还没缕清。留在明天研究。
|