说明:最近横向学习了51单片机、STM32和S3C2440的IO口,做了几个相关的实验。
我们数据结构老师曾经说过 ”差异就是知识“。在此,比较了这几个芯片IO口的使用后,有些感悟,总结如下:
1.IO口是芯片内部CPU和外设之间沟通的桥梁,也是其他模块(如I2C通讯、SPI通讯)的基础。不同的芯片对IO的操作不太相同,但很类似。高级一点的芯片(如STM32,S3C2440)用寄存器控制IO口,输出相应电平;低级一点的芯片(如51),直接控制IO。
2.对于51这样的单片机来说,其IO口的控制使用很简单,就是直接往相应的IO口写入或读出。51单片机的IO口一般比较少,其可以直接控制到位操作。对于STM32和2440来说,对其IO口的控制则必须通过对应的寄存器进行控制。而且一般高级一点的芯片,其会提供更多的IO口,有的IO口还可以进行功能复用,所以在使用时也需要通过配置相应的控制寄存器选择相应的功能。
具体来说,对于STM32,一般其每个GPIO口会有8种输入输出模式可供选择,所以对其配置也要复杂的多(不仅要配置功能模式,还要配置端口引脚的最大速度,还要开启相应的时钟模块)。而对于2440来说,对其GPIO的操作要稍微简单些,只需控制三个寄存器即可(分别是控制寄存器、数据寄存器、还有控制上拉寄存器)。其次,控制2440也不需要像STM2那样配置相应的时钟树,只需要对相应的IO口配置相应的功能,然后从数据寄存器中写入或读出数据即可。
3.再说一点关于对于STM32和2440开发过程中遇到的一些想法:对于STM32来说,其在开发过程中可以使用提供的固件库(当然也可以直接操纵寄存器),而对于2440来说,一般还是直接操纵其寄存器。大概是因为STM32的寄存器的操纵比较复杂,2440的寄存器操作要相对简单些吧。
文章评论(0条评论)
登录后参与讨论