首先呢题目上是有些问题的,因为前者是一个确定的型号,而后者STM32却是个大家族,有很多个系列型号
从应用与学习的角度来说,因为都是属于单片机,所以他们被使用或学习的核心外设是一样的例如GPIO基本读写、中断系统、定时器、串口、ADC等,本质都是配置寄存器来实现不同的功能或工作模式。
不同点可以概括的说复杂度不一样:
前者51现在没有太多的应用,更多的是以其简单的的特点被当做单片机引子来入门学习,寄存器较少,时钟网络也比较简单,编程方式多是用直接寄存器编程,就是直接面向寄存器。
而对于STM32来说,基本无论那一型来说,寄存器与时钟网络都是比51复杂很多倍的,因为寄存器繁多,直接面向寄存器的编程方式不再被推荐,开始使用库函数来编程,即将寄存器进行封装,且在近年来的趋势,对于寄存器的封装抽象程度越来越高。所以编程模式不同。
然后就是片内外设更丰富外扩SRAM需要的FC、驱动SD卡的SDIO、驱动液晶屏的LTDC,以及ADC DAC等都具备,功能强大远超51。
第三个就是内核不同,也是最大的不同啦,也因此在STM32上可以运行一些FreeRTOS/UCOS等实时操作系统、RT_Thread等的一些IoTOS,TouchGFX等的GUI系统、LWIP系统等,总之功能强大
暂时就想到这么多