[转载] 嵌入式之IO口有哪些问题值得关注
528 查看
4 回复
 楼主 | 发布于 2019-09-25 | 只看楼主
分享到:
名称:IO口总结

说明:最近横向学习了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 ) (0 )
回复 举报

回复于 2019-09-25 沙发

感谢分享!
(0 )
评论 (1) 举报

回复于 2019-09-26 2#

感谢分享
(0 )
评论 (1) 举报

回复于 2019-09-29 3#

谢谢分享!!!
(0 )
评论 (1) 举报

回复于 2019-10-20 4#

感谢分享
(0 )
评论 (1) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部