芯海科技(深圳)股份有限公司实习生面经(已拿offer)

芯片测试岗(写驱动程序测试芯片,给出结论)、

在小鱼易联APP上,网络面试 2020.4.10

面试时间20分钟

问题:

1、STM32的引脚如何输入和输出

答:其实就是考单片机初始化的问题,先打开时钟,再配置IO口状态,就可以使用了。

1、上拉电阻:将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平。在IO口为输入模式且为上拉电阻时,IO口的常态为高电平。

2、下拉电阻:将一个不确定的信号,通过一个电阻与地GND相连,固定在低电平。在IO口为输入模式且为下拉电阻时,IO口的常态为低电平。

3、推挽输出:可以输出高、低电平,连接数字器件。推挽结果一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通时令一个三极管截止。(推挽输出的最大特点是可以真正的输出高电平和低电平,且两种电平下都有驱动能力)。IO输出0-接GND, IO输出1 -接VCC

4、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要加上拉电阻才行。适合做电流型的驱动,其吸收电流的能力比较强(20mA左右)(开漏输出最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平)。开漏只能输出低电平,高电平的时候实际上是个高阻态,需要外接电阻来拉高的。

IO的模式

STM32 GPIO的配置种类有8种:

(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_Out_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出

3.1 通用IO端口(GPIO)初始化:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2总线外设时钟
RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):释放GPIO复位
3.2 配置各个PIN端口(模拟输入_AIN、输入浮空_IN_FLOATING、输入上拉_IPU、输入下拉_IPD、开漏输出_OUT_OD、推挽式输出_OUT_PP、推挽式复用输出_AF_PP、开漏复用输出_AF_OD)
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
3.3 GPIO初始化完成

2、多个文件使用一个变量,如何定义它

extern x 就可以了

3、大端小端

这个就是CPU对于操作数的存取问题,小端就是低位数据存在地位地址,高位数据存在高位地址。大端就是反过来

4、那么如果通过C语言编程来判断系统是大端还是小端

1、联合体 2、指针

这个问题在我的另外一篇博客写了答案

5、我的简历里面项目有个发出双极性正弦波的项目,他让我简述发出正弦波的过程。

他们公司是做芯片的老厂,做的是倾向于物联网的多种信号混合输入的AD芯片,所以算是芯片原厂,给的岗位是给新的芯片写驱动程序,测试芯片可否正常使用。主要就是熟悉C语言,熟悉单片机平台的通信方式就可以。

发布了172 篇原创文章 · 获赞 49 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_38769551/article/details/105447698