3.I/O接口(17道) 3.1 GPIO 口一般有哪三个寄存器?以S3C2410为例,有控制寄存器、 数据 寄存器、上拉寄存器。 3.2 GPIO 的输入输出模式有哪些?答案:(1)输入模式:浮空输入、带上拉输入、带下拉输入、模拟输入。 (2)输出模式:开漏输出、推挽输出、开漏复用输出、推挽复用输出。 解读:浮空输入 _IN_FLOATING浮空输入,可以做 KEY识别。带上拉输入 _IPUIO 内部上拉电阻输入。带下拉输入 _IPDIO 内部下拉电阻输入。模拟输入 _AIN应用 ADC模拟输入,或者低功耗下省电。开漏输出 _OUT_ODIO 输出0 接GND ,IO 输出1 则悬空,需要外接上拉电阻才能输出高电平。当输出为 1 时,IO 口的状态由上拉电阻拉高,但同时IO 口也可由外部电路拉低,可以通过输入 数据 寄存器读取电平变化,实现 C51的 IO双向功能。推挽输出 _OUT_PPIO 输出0 接GND , IO 输出1 接 VCC ,读输入值是未知的。复用功能的推挽输出 _AF_PP片内外设功能( I2C的 SCL,SDA)。复用功能的开漏输出 _AF_OD片内外设功能( TX1,MOSI,MISO.SCK.SS)3.4 什么是异步串行?什么是同步串行?(1)异步串行方式的特点: ①以字符为单位传送信息,相邻两个字符间的间隔是任意长;即字符内部各位同步,字符间异步; ②因为一个字符中的比特位长度有限,所以接收时钟和发送时钟只要相近就可以了。 (2)同步串行方式的特点: ①以 数据 块为单位传送信息,在一个 数据块内,字符与字符之间无间隔;即字符内部各位同步,字符间也同步; ②因为一次传输的 数据 块中包含的 数据 较多,所以接收时钟与发送时钟需要严格同步。 3.5 IIC 总线时序图?(1)时序总结: 总线空闲状态SCL 和SDA 均为高电平,接上拉电阻。启动信号( START)在 SCL保持高电平期间, SDA由高电平被拉低。由主控器发出。数据 位传送( DATA)在 SCL保持高电平期间, SDA上的电平保持稳定,低电平为 数据 0、高电平为 数据 1。用法:主控器和被控器都可发出。应答信号( ACK)在 SCL保持高电平期间, SDA保持低电平。 IIC总线上所有 数据 都是以 8位字节传送的,发送器每发送一个字节,就在第 9个时钟脉冲期间释放 SDA(高电平),由接收器反馈一个 ACK。非应答信号( NACK)在 SCL保持高电平期间, SDA保持高电平。如果接收器是主控器,则它在收到最后一个字节后,发送一个 NACK,通知被控器结束 数据 发送,并释放 SDA(高电平),以便主控器发送一个 STOP。停止信号( STOP)在 SCL保持高电平时间, SDA由低电平被释放(拉高)。由主控器发出。(2)写 数据 步骤: ①主机发起一个启动信号(START)。 ②主机发送7bit从机地址+1bit读写选择位,1表示读、0表示写。 ③从机产生应答信号(ACK)。 ④主机发送8bit从机寄存器地址。 ⑤从机产生应答信号(ACK)。 ⑥主机发送一个字节 数据 。 ⑦从机产生应答信号(ACK)。 ⑧主机发送一个停止信号(STOP)。 (3)读 数据 步骤 ①主机发送一个启动信号(START)。 ②主机发送7bit从机地址+1bit读写选择位,1表示读、0表示写。 ③从机产生一个应答信号(ACK)。 ④主机发送8bit从机寄存器地址。 ⑤从机产生一个应答信号。 ⑥主机再次发送一个启动信号(START)。 ⑦主机再次发送7bit从机地址+1bit读写选择位,1表示读、0表示写。 ⑧从机产生一个应答信号( ACK)。 ⑨主机读取一个字节 数据 。 ⑩主机产生一个非应答信号(NACK)。之后产生一个停止信号(STOP)。以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看: https://blog.nowcoder.net/zhuanlan/v0ELPM公司推荐: 华为 、 小米 、 OPPO、VIVO、荣耀、一加、 CVTE、 大疆 、insta360影石、 美的 、 TCL 、 海信、创维、烽火、 比亚迪 、吉利、长安、大众、 经纬恒润 、小鹏、 图森未来、 百度 、 滴滴、蔚来、理想、 联发科、 紫光展锐 、全志、 寒武纪 、 晶晨半导体 、汇顶、 华为、 中兴、 浪潮 、 TP-LINK、讯飞、商汤、 海康威视 、浙江 大华 、360、小马智行、 元戎启行 、 深信服 、移动、联通、电信、 旷视 、 四维图新 、 中芯国际 、复旦微电子ISTlMZgH8JWN6q8stXQnVUJSJ7SO8to8.jpgP9k8O4RtWsFuU0xHNpzN5Fke2T9XsbML.jpg#牛客AI配图神器#