嵌入式单片机常见笔试题(1)

90d763893b904de2bc108f2693afae7e.jpg

 第一题:

我是这样理解的,或|设置,与&清除,因为或|有1则1,看它给出的BIT5里是左移了5位变成0010 0000,再进行或操作就可以保留原来位数而不改变原值。

与&清除,先将BIT5取反变成1101 1111,然后根据或&有0则0的原则,就可以清除相对应的位数。

代码:

void set_bit(void)
{
 a | = BIT5;
}
void clear_bit(void)
{
    a&= -BIT5;
}

第二题:

看SPI时序图,可以选择0或者3模式,不同在于起始电平的不同(0低3高),那该怎么正确读取SPIFlash呢?

首先:

第一步:初始化相应通信引脚和端口时钟;

第二步:初始化SPI时钟;

第三步:选择模式0或者模式3;

第四步:写使能0x06;

第五步:进行数据读取0x03;

代码:

void SPI_init()

{

}

//模式0

void SPI_WriteReadByte(unsigned char WData)

{  

 unsigned char RData = 0;  

 //循环读取8位数据

for(int i = 0;i < 8;i++)    

{        

//时钟下降的一瞬间--进入MOSL写    

   SCL = 0;    

   if(WData &0x80>>i);          

      MOSL = 1;  

 else            

    MOSL = 0;      

 //上升一瞬间判断读    

   SCL = 1;    

   if(MISO == 1)          

 RData |=(0x80 >> i);  

 }   

return RData;//返回读取数据。

}

//写使能

void SPI_Enable(void){    

SPI_cs = 0;    

SPI_WriteReadByte(0x06);    

SPI_cs = 1;

}

//读取数据

void SPI_ReadData(unsigned int Addr,char *Rbuff,int len)

{    //1拉低片选信号    

SPI_cs = 0;    

//发送读取命令

   SPI_WriteReadByte(0x03);

   //发送读取Flash的起始地址,24Bit地址,高字节先发。  

 SPI_WriteReadByte((Addr << 16)&0xFF);    SPI_WriteReadByte((Addr << 8)&0xFF);    SPI_WriteReadByte((Addr << 0)&0xFF);    

//再循环读取len个字节数据长度到Rbuff    while(len--)    {    

   *Rbuff = SPI_WriteReadByte(0xFF);

   }  

 //拉高片选信号    SPI_cs = 1;

}

第三题:

参考博主 http://t.csdn.cn/0Xq4z

 

 

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CVTE是一家具有领先技术的嵌入式解决方案提供商。在CVTE的嵌入式笔试题中,通常会涉及一些基础的嵌入式知识和技能。 首先,嵌入式系统是指集成了微处理器芯片和专用硬件的系统,这些芯片和硬件用于执行特定的功能。嵌入式系统通常用于控制和监测其他设备或系统。 在CVTE的嵌入式笔试题中,可能会涉及以下问题: 1. 嵌入式系统的特点:需要了解嵌入式系统的特点,例如实时性、稳定性、功耗低、尺寸小等。 2. 嵌入式开发工具和环境:了解嵌入式开发工具和环境,例如编译器、调试器、仿真器等。 3. 嵌入式操作系统:熟悉一些常用的嵌入式操作系统,例如Linux、RTOS(Real-Time Operating System)等。 4. 单片机和微处理器的区别:了解单片机和微处理器的区别,例如单片机通常集成了内存、IO口、定时器等外围设备。 5. 嵌入式软件开发:了解嵌入式软件开发的流程和方法,例如需求分析、软件设计、调试等。 6. 嵌入式硬件设计:了解一些基本的嵌入式硬件设计知识,例如电路设计、PCB设计、信号处理等。 7. 嵌入式通信协议:了解一些常用的嵌入式通信协议,例如UART、SPI、I2C、CAN等。 总之,CVTE的嵌入式笔试题目旨在考察应聘者对嵌入式系统的基本理解和掌握程度。准备笔试时,需要针对上述问题对相关知识进行学习和复习,以便能够准确回答和解决嵌入式开发相关的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新小电阻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值