嵌入式系统/输入与输出(I/O)

在嵌入式系统中,大部分输入端与输出端都是逻辑电平管脚(端口),而输入操作是读取某个管脚的逻辑值,输出操作是向这个管脚写入逻辑值。此外,单片机也会将某个管脚上的电平变化作为输入,而这类输入会被作为中断处理。I/O管脚会被打包成为管脚埠,统一管理。

部分单片机提供了内嵌A/D转换器,可以接收外部的模拟信号。

单片机读取到数据后,会利用嵌入的解码器来解码UART、IIC、SPI、CAN等现场总线的内容。

定位管脚 编辑

就像寄存器一样,管脚也被映射到了某一个地址上,在C语言里读写管脚就是向相应的内存地址赋值。

sfr  P1  =  0x90;  //P1接口埠的地址
sbit  P1_3  =  P13;    //因 P1 端口的寄存器是可位寻址的,所以能定义P1_1 为 P1接口埠中的3引脚
P1 = 0x8; //将P1的4管脚设为1,其他管脚设为0
P1_3 = 1

初始化管脚 编辑

在STM单片机中,如果使用某个管脚作为I/O管脚,就需要在使用管脚之前,指定这一管脚的用法:

  • 用作输入还是输出(INPUT OUTPUT)
  • 有无上拉电阻或下拉电阻(PULLUP PULLDOWN)
  • 速度为多少
  • 如果这一管脚是输入管脚,应该启用对应管脚埠的时钟。

读写管脚 编辑

操纵某几个比特位 编辑

STM的库函数 编辑

ADC 编辑

中断 编辑

处理原始数据与通讯协议 编辑