面试问题总结

1.问:简述SPI IIC UART接口的区别和各自收发数据的方法。
答:UART属于全双工通信,主机与从机之间至少需要三根线连接,分别是RX、TX和GND。SPI是全双工串行总线,由一个主机和多个从机组成,应有四根信号线:SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟)和CS(从使能),以CS选择从机。IIC是半双工通信,由两根信号线组成:SCL(时钟线)和SDA(数据线),以地址选择从机。

2.问:一个无序的长度为n的数组,找到最小的值,请用C语言编码实现以下函数int get_min(int* array, int n) {}
答:

int get_min(int* array, int n) {
	int i;
	int min = array[0];
	for(i=1;i<n;i++){
		if(array[i] < min){
			min = array[i];
		}
	}
	return min;
}

3.问:请实现内存复制函数void memcpy(void *dst,const void src,int size)。
答:dst是拷贝到的目的地址,src是拷贝的起始地址,size是拷贝多少个字节
由src指向的地址为起始地址的连续size个字节的数据,复制到以dst指向地址为起始地址的空间内。

void memcpy(void *dst,const void *src,int size){
	if(size = 0){
		printf("Invalid count number!\n");
		return (void*)0;
	}
	if(src==NULL||dst==NULL){
		return (void*)0;
	}
	if((unsigned int)dst == (unsigned int)src){
		printf("The source is equal with the destanation!\n");
		return dst;
	}
	char *d = (char*)dst;
	const char* s = (const char*)src;
	while(size--)
	*d++ = *s++;
	return dst;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值