目录
4.使用单片机的12位AD进行采样时,采用VCC作为参考电压,请写出单片机AD采样的对应关系
5.用预处理指令#define声明一个常数,用以表明1年中有多少秒
6.给定一个短整型变量a,写两段代码,第一个置位a的bit9和 bit3;第二个清除a的bit9。在以上两个操作中,要保持其它位不变。
7.简述const volatile static三个关键字的作用
10.请列举出你所熟悉的总线类型,并从传输方式、传输速率、电平特点等方面做简单描述。
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个作用)
- 静态变量:在函数调用过程只分配一次内存,且整个运行期间不会重新分配
- 静态变量:只能被这个源文件访问,不能被其他源文件函数访问,是本地的全局变量
- 静态函数:仅仅只可以被这个源文件的其他函数调用,静态函数被限制在声明的函数里
volatile(作用)
- 防止编译器优化代码,而忽略
const(作用)
- const定义的变量值不能被改变
- const修饰指针,指针指向不能改变
- 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.什么是中断,请简述中断的过程
- 中断源产生请求
- 单片机相应中断:将程序计数器PC和各个寄存器状态压入栈中(保护现场)
- 中断服务程序运行:跳转到对应中断处理函数进行处理
- 恢复现场:中断处理完成后,将寄存器状态恢复
- 返回原任务:程序计数器跳回被中断处,继续执行原来任务
10.请列举出你所熟悉的总线类型,并从传输方式、传输速率、电平特点等方面做简单描述。
| GPIO总线 | SPI总线 | I2C总线 | UART总线 | CAN总线 | |
| 传输方式 | 1. 通过配置GPIO引脚为输入或输出 | 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等)
- MQTT协议
-
- 使用基于代理的发布/订阅消息模式,提供一对多的消息发布
- 使用 TCP/IP 提供网络连接
- 支持QoS,有三种消息发布服务质量:“至多一次”, “至少一次”, “只有一次”
- 一般适用于设备数据采集到端,适用设备与设备之间通信
- CoAP协议
-
- 报头压缩:短短的4B的基本报头,基本报头后面跟扩展选项,基本报头后面跟扩展选项。一个典型的请求报头为10~20B
- 方法和URIs:为了实现客户端访问服务器上的资源,CoAP支持GET、PUT、POST和DELETE等方法。CoAP还支持URIs,这是Web架构的主要特点
- 传输层使用UDP协议:减少开销和支持组播功能
- 支持异步通信:HTTP对M2M(Machine-to-Machine)通信不适用,这是由于事务总是由客户端发起。而CoAP协议支持异步通信,这对M2M通信应用来说是常见的休眠/唤醒机制
- 支持资源发现:为了自主的发现和使用资源,它支持内置的资源发现格式,用于发现设备上的资源列表,或者用于设备向服务目录公告自己的资源
- 支持缓存:CoAP协议支持资源描述的缓存以优化其性能
本文涵盖了单片机相关知识,包括上电检查步骤、AD采样原理、预处理指令的应用,以及中断处理流程。同时讨论了各种无线通信方式,如WiFi、蓝牙、NFC等,并列举了常见的总线类型及其特点。此外,还提及了物联网中的MQTT和CoAP协议。
653

被折叠的 条评论
为什么被折叠?



