《刷题1》单片机开发题

本文涵盖了单片机相关知识,包括上电检查步骤、AD采样原理、预处理指令的应用,以及中断处理流程。同时讨论了各种无线通信方式,如WiFi、蓝牙、NFC等,并列举了常见的总线类型及其特点。此外,还提及了物联网中的MQTT和CoAP协议。
摘要由CSDN通过智能技术生成

目录

1.选择排序

2. 单片机上电后没运行怎么检查?

3.无线通信方式,并简单说明

4.使用单片机的12位AD进行采样时,采用VCC作为参考电压,请写出单片机AD采样的对应关系

5.用预处理指令#define声明一个常数,用以表明1年中有多少秒

6.给定一个短整型变量a,写两段代码,第一个置位a的bit9和 bit3;第二个清除a的bit9。在以上两个操作中,要保持其它位不变。

7.简述const volatile static三个关键字的作用

8.请列举出你所知道的单片机,并说明你使用过其中的哪些种

9.什么是中断,请简述中断的过程

10.请列举出你所熟悉的总线类型,并从传输方式、传输速率、电平特点等方面做简单描述。

11.简述常用1oT物联网协议(如:MQTT、CoAP等)


1.选择排序

#include <stdio.h>
#define N 5
//选择排序
void test()
{
    int buf[N]={5,4,1,2,3};
    int min;
    int temp;
    for (int i = 0; i < N-1; i++)
    {
        min=i; //设最小下标为首
        for(int j=i+1;j<N;j++)
        {
            if(buf[j]<buf[min])
            {
                min=j;
            }

        }
        if(min != i)
        {
            temp = buf[i];
            buf[i]=buf[min];
            buf[min]=temp;
        }
    }
    for(int i=0;i<N;i++)
    {
        printf("%d",buf[i]);
    }
}
int main(int argc, char const *argv[])
{
    test();
    return 0;
}

2. 单片机上电后没运行怎么检查?

  • 确认电源电压是否正常:使用电压表进行测量
  • 检查复位引脚电压是否正常:分别测量按下复位按钮和放开复位按钮的电压值
  • 检查晶振是否已经起振:用示波器查看
  • 查单片机端口配置是否正确:程序和烧写是否正常

3.无线通信方式,并简单说明

  • wifi :无线电波的局域网技术
  • 蓝牙 :短距离无线通信技术
  • NFC :近场通信技术,允许两个设备在非接触的情况下进行短距离通信
  • 蜂窝移动通信 :应用于移动电话系统的无线通信技术, 它通过将服务区域划分为多个小区 , 基站与移动设备进行通信
  • 无线传感网络 :分布在广域范围内的无线传感器节点组成的网络
  • 无线电广播 : 无线电波进行广播传输的方式

4.使用单片机的12位AD进行采样时,采用VCC作为参考电压,请写出单片机AD采样的对应关系

12bit有2的12位(4096)个离散的量化级别

最低电压量化级别为0, 最高电压量化级别对应于VCC

离散的量化级别之间电压间隔为VCC/(2的12位)4096

既电压值=(ADC采样值/4096)*VCC

5.用预处理指令#define声明一个常数,用以表明1年中有多少秒

#define YEAR_DAY_SEC (365*24*60*60)UL //UL是必须添加的,解释为无符号长整形

6.给定一个短整型变量a,写两段代码,第一个置位a的bit9和 bit3;第二个清除a的bit9。在以上两个操作中,要保持其它位不变。

a |= 1<<9

a |= 1<<3

a &= ~(1<<9)

7.简述const volatile static三个关键字的作用

static(3个作用)

  1. 静态变量:在函数调用过程只分配一次内存,且整个运行期间不会重新分配
  2. 静态变量:只能被这个源文件访问,不能被其他源文件函数访问,是本地的全局变量
  3. 静态函数:仅仅只可以被这个源文件的其他函数调用,静态函数被限制在声明的函数里

volatile(作用)

  1. 防止编译器优化代码,而忽略

const(作用)

  1. const定义的变量值不能被改变
  2. const修饰指针,指针指向不能改变
  3. const 通常用在函数形参中,如果形参是一个指针,防止在函数内部修改指针指向的数据

8.请列举出你所知道的单片机,并说明你使用过其中的哪些种

我知道的单片机有:

Arduino : Arduino是一种开源的电子原型平台,基于Atmel AVR单片机

PIC : Microchip Technology生产的一系列单片机,主要有PIC16系列和PIC18

AVR : AVR是Atmel生产的一系列低功耗、高性能的8位和32位单片机

STM32系列 : 生产的一系列基于ARM Cortex-M内核32位单片机

MSP430系列 : MSP430是德州仪器(Texas Instruments)生产的一系列低功耗、高性能的16位单片机

9.什么是中断,请简述中断的过程

  1. 中断源产生请求
  2. 单片机相应中断:将程序计数器PC和各个寄存器状态压入栈中保护现场
  3. 中断服务程序运行:跳转到对应中断处理函数进行处理
  4. 恢复现场:中断处理完成后,将寄存器状态恢复
  5. 返回原任务:程序计数器跳回被中断处,继续执行原来任务

10.请列举出你所熟悉的总线类型,并从传输方式、传输速率、电平特点等方面做简单描述。

GPIO总线

SPI总线

I2C总线

UART总线

CAN总线

传输方式

1. 通过配置GPIO引脚为输入或输出
2.通过引脚的电平状态进行数据传输

1.全双工的串行通信方式

2. 在时钟信号的同步下进行数据传输

1. 采用双线制(时钟线和数据线)进行串行通信

2. 支持多主机和多从机的通信

1. 采用异步的串行通信方式

2. 使用两根线(接收线和发送线)进行数据传输

1.采用串行通信方式

2. 使用两根差分线(CAN_H和CAN_L)进行数据传输

传输速率

1. 微控制器的时钟频率

2. GPIO引脚的配置

1.SPI控制器的时钟分频设置调整,速率可达到高达几十MHz甚至更高

1. 标准模式(100 kbps)

2. 快速模式(400 kbps)

1.取决于波特率的配置

2.通常支持多个预定义的速率,如9600 bps、115200 bps

1.支持不同的传输速率,如CAN 2.0规范中的1 Mbps、500 kbps、250 kbps

电平特点

1. 配置为不同的电平特性,如推挽输出、开漏输出或输入。

1. SPI总线的电平特点由相关的I/O引脚进行确定

I2C总线使用开漏极性输出,可以通过外部上拉电阻确定高电平电压水平

1.UART总线使用逻辑电平(如TTL电平)进行传输

2. 通常在0V和3.3V之间

1. CAN总线使用差分信号进行传输

2. 典型电平范围在2.5V至3.3V之间

11.简述常用1oT物联网协议(如:MQTT、CoAP等)

  1. MQTT协议
    1. 使用基于代理的发布/订阅消息模式,提供一对多的消息发布
    2. 使用 TCP/IP 提供网络连接
    3. 支持QoS,有三种消息发布服务质量:“至多一次”, “至少一次”, “只有一次”
    4. 一般适用于设备数据采集到端适用设备与设备之间通信
  1. CoAP协议
    1. 报头压缩:短短的4B的基本报头,基本报头后面跟扩展选项,基本报头后面跟扩展选项。一个典型的请求报头为10~20B
    2. 方法和URIs:为了实现客户端访问服务器上的资源,CoAP支持GET、PUT、POSTDELETE等方法。CoAP还支持URIs,这是Web架构的主要特点
    3. 传输层使用UDP协议:减少开销和支持组播功能
    4. 支持异步通信:HTTP对M2M(Machine-to-Machine)通信不适用,这是由于事务总是由客户端发起。而CoAP协议支持异步通信,这对M2M通信应用来说是常见的休眠/唤醒机制
    5. 支持资源发现:为了自主的发现和使用资源,它支持内置的资源发现格式,用于发现设备上的资源列表,或者用于设备向服务目录公告自己的资源
    6. 支持缓存:CoAP协议支持资源描述的缓存以优化其性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值