只比较使用过的外部设备,如有不正确的地方请指正!谢谢
USART:
STM32 的USART 没有FIFO , NUC 的有64\16 BYTE FIFO
STM32 的USART 波特可以小数 在频率高的时候可以满足要求. NUC 的做不到!
SPI : STM32 的SPI 没有FIFO , NUC 的有 2 字 FIFO
I2C : STM32 支持 400K , NUC 可以支持 1M
GPIO : STM32 中断 只支持 16个 GPIO (不支持 不同端口,同位 IO 同时使用) , NUC 可以支持所有 GPIO
I2S : STM32 和 SPI 是公用的 不支持 同时 双向传输, NUC 的 I2S 是单独的 外设!
ADC : STM32 的 速度和精度 很高! NUC 的在 800K 的时候只能做到 10 BIT , 支持差分输入 ;
DAC : STM32 有两路输出 , NUC 没有DAC
DMA : STM32 无FIFO NUC 有一个字!
另外比较了下 STM32和 NUC 的 FLASH 运行速度!
测试代码
A = 1 ; B = 1 ;
while(1)
{
A = A + B ;
if( A == 10000000) //1千万次运算
{
A = 1 ;
// IO 输出测试时间
if(GPIOA->DOUT == 0XFFFF)GPIOA->DOUT = 0 ;
else GPIOA->DOUT = 0XFFFF ;
}
}
NUC FLASH 无等待时间
24MHZ STM32 FLASH_SetLatency = 0 T = 3.38S NUC 6.30S
48MHZ STM32 FLASH_SetLatency = 1 T = 2.95S NUC 3.15S
60MHZ 未测试 NUC T = 2.46S 目前NUC 最大 60M
72MHZ STM32 FLASH_SetLatency = 2 T = 2.39S NUC 2.10S 超频72M测试
从速度测试的结果可以看出 STM32 M3 内核 在 24M 的时候 明显比 M0 的快很多 ! 接近 1倍了!
“DMA : STM32 无FIFO NUC 有一个字!”
这里的DMA什么概念?
目前我看到的ARM7或M3中,DMA是外设和内存、外设和外设联系的通路,使用上应该比FIFO更灵活。
“DMA : STM32 无FIFO NUC 有一个字!”
这里的DMA什么概念?
目前我看到的ARM7或M3中,DMA是外设和内存、外设和外设联系的通路,使用上应该比FIFO更灵活。
DMA 一样有 FIFO 在总线被 CPU 站用的时候就可以先近 FIFO ! 如果没有 FIFO 就要等待 CPU 不使用总线的时候了! DMA 才可以传输数据! STM32F2XX 的DMA 就有 FIFO !
本人暂时还没有收入研究 NUC, 不过:
在对比指令执行速度的时候, 最好把执行的反汇编代码也一并给出.
在速度在 48 M 一下的时候 STM32 要快点 48M 以上的时候 速度就差不多了!
在 72M 的时候 STM32 还比 NUC M0 慢点!
所以以后在使用的时候 最好就在 24M 这样 性能还可以 功耗也比较低!
当跑 72 的时候 实际的运行速度没有提供多少 ! 但是功耗就大了不少!
在速度在 48 M 一下的时候 STM32 要快点 48M 以上的时候 速度就差不多了!
在 72M 的时候 STM32 还比 NUC M0 慢点!
所以以后在使用的时候 最好就在 24M 这样 性能还可以 功耗也比较低!
当跑 72 的时候 实际的运 ...
不能按照超频的情况来说。有的STM32可以超频到120M
10# IJK
STM32 在 72M 的时候用了 2.39S NUC1XX 在 60M 的时候用了 2.46S NUC 最大 60M 时间只差了 0.07S
楼主通过测试程序的运行时间,测试Flash速度的方法不可信。因为程序运行的时间还与总线的机构与速度有关。
LZ的方法,粗略参考一下是可以的。
比较可信的,是用 Drystone的测试程序。
据说最靠谱的是 EEMBC的测试结果。
高手啊
http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr