问题汇总20231117

本文汇总了关于Keil使用技巧、温度传感器DS18B20和DHT11的区别、RTOSFreeRTOS与UCOSII对比、64位系统数据类型、FreeRTOS任务同步机制、嵌入式通信模块、卡尔曼滤波、物联网技术等内容,旨在解决日常开发中的问题。
摘要由CSDN通过智能技术生成

前言

本篇文章为个人日常生活的问题总结,不做权威使用,帮助小白解决问题,部分参考内容会附上原文链接,如有疑问联系本人删除。

问题汇总

1. keil文件打开时不能够使用go to definition

点击keil中魔术棒设置—–点击output设置—–选中以下三个信息
在这里插入图片描述

2. DS18B20和DHT11的区别

DS18B20和DHT11是两种常见的温度传感器,它们在以下几个方面有不同之处
1)接口类型:DS18B20使用1-Wire接口,而DHT11使用数字接口。
2)测量范围:DS18B20能够测量温度范围较广,通常在-55°C至+125°C之间。而DHT11的测量范围较窄,一般在0°C至50°C之间。测量精度:DS18B20具有较高的测量精度,通常为±0.5°C。而DHT11的测量精度较低,一般为±2°C左右。
3)额外功能:DS18B20通常只提供温度测量功能,而DHT11除了温度测量外,还具备湿度测量功能。
4)供电电压:DS18B20可以在3.0V至5.5V的范围内工作,而DHT11通常在3.3V至5.5V之间。
5)数据传输速率:DS18B20的数据传输速率相对较快,可以达到最高12Mbps。而DHT11的数据传输速率较慢,一般在1kbps左右。
6)需要注意的是,DS18B20是一种数字温度传感器,而DHT11则同时提供温度和湿度测量。因此,选择哪种传感器应基于具体应用需求,如测量范围、精度要求和所需的额外功能。

3. FreeRTOS与UCOS II 的区别

FreeRTOS 通常被认为是一个相对简单的RTOS,它的内核设计较为简洁,提供了基本的任务调度、同步机制和内存管理等功能。它的代码量相对较小,适合嵌入式系统和资源受限的环境。FreeRTOS 提供了丰富的示例代码和文档,使得初学者可以相对容易地开始使用和理解。
μC/OS-II/III 则是 Micrium 公司开发的商业实时操作系统,它提供了更全面和复杂的功能,如多任务调度、同步机制、内存管理、通信和文件系统等。相比于 FreeRTOS,μC/OS-II/III 的内核设计和实现更为复杂,但它也提供了更多的功能和可选组件,可以满足更复杂的应用需求。
最重要的是FREERTOS开源,UCOS付费。

4. 64位操作系统下常见的数据类型长度(字节)

类型名 长度
Unsigned char 1
Unsigned short char 2
Char 1
Short 2
Int 4
Long 8
Long long 8
Float 4
Double 8
指针 8

5. taskENTER_CRITICAL()是什么意思

在FREERTOS中代表临界区,是一个函数宏,进入临界区后,会禁用任务调度器防止其他任务抢占当前任务的进行,禁用中断,防止中断在临界区内执行。

6. 地址&上0xFFFFFF的作用:

防止访问地址越界

7. FREERTOS中,在A<B优先级的条件下,在A任务中释放B信号量,此时会执行B,B执行结束会返回到A中间再继续执行。

8.代码中HCLK\PCLK\APB\AHB代表什么

PLCK(Peripheral Clock):PLCK是指外设时钟,也称为外设总线时钟或外设时钟总线。它是用来驱动嵌入式系统中的外设模块的时钟信号。外设包括各种外围设备,如串口、SPI(串行外设接口)、I2C(两线制串行总线接口)、定时器、ADC(模数转换器)等。PLCK的频率通常较低,是提供给低速总线APB的时钟信号。根据具体的系统需求和外设模块的要求进行配置。

HCLK(High-Speed Clock):HCLK是指高速时钟,也称为系统主时钟或系统时钟总线。它是用来驱动整个嵌入式系统的主时钟信号。HCLK的频率通常较高,是整个系统的基准时钟频率。一般提供给高速AHB总线的时钟信号。它不仅用于CPU(中央处理器)的运行,还用于内存访问、总线传输、时序控制等系统功能。HCLK的频率可以根据系统设计的需求和硬件规格进行配置。

AHB(Advanced High-performance Bus)和APB(Advanced Peripheral Bus)是ARM架构中的总线协议,用于连接处理器核心和外设的通信。

AHB(Advanced High-performance Bus):AHB是一种高性能总线,用于连接处理器核心和高速外设。它提供了高带宽、低延迟的数据传输,适用于连接要求较高性能的外设,如存储器控制器、DMA控制器等。AHB总线通常用于连接处理器核心与高速存储器、高带宽外设之间。

APB(Advanced Peripheral Bus):APB是一种低功耗、低带宽的总线,用于连接处理器核心和低速外设。它适用于连接低速外设,如GPIO(通用输入输出)、UART(通用异步收发器)等。APB总线通常用于连接处理器核心与低速外设之间。

"FCLK"通常指的是时钟频率(Clock Frequency)。FCLK是指单片机系统中的主时钟频率,它用于驱动处理器核心、外设和总线等关键部件的时钟信号。FCLK的频率是单片机系统运行的基本时钟频率。它是由外部晶体振荡器或其他时钟源提供的,并通过时钟分频器进行分频以生成所需的系统时钟频率。时钟频率的选择取决于具体的单片机型号和应用需求。FCLK的频率对单片机系统的性能和功耗有重要影响。较高的时钟频率可以提供更高的计算速度和响应能力,但可能会增加功耗和噪声敏感性。较低的时钟频率可以降低功耗并减少噪声,但可能会影响系统的响应时间和处理能力。

9. MCU开发中常见的无线通信模块和协议有哪些?

Wi-Fi(无线局域网):Wi-Fi模块可以实现高速无线数据传输,并且广泛应用于各种物联网和智能设备中。常见的Wi-Fi协议包括IEEE 802.11b/g/n/ac等。
Bluetooth(蓝牙):蓝牙模块适用于短距离无线通信,常用于连接手机、耳机、传感器等设备。常见的蓝牙协议包括Bluetooth Classic(经典蓝牙)和Bluetooth Low Energy(低功耗蓝牙)。
Zigbee(Zigbee无线通信协议):Zigbee是一种低功耗、低数据速率的无线通信协议,主要应用于低功耗传感网(Low-Power Wireless Sensor Networks)。它具有自组网和自动路由等特性,适用于大规模传感器网络和自动化控制系统。
Z-Wave(Z-Wave无线通信协议):Z-Wave是一种专为智能家居应用设计的无线通信协议。它具有低功耗、高可靠性和扩展性等特点,适用于构建智能家居设备和系统。
LoRa(LoRaWAN协议):LoRa是一种长距离、低功耗的无线通信技术,适用于构建广域物联网(LPWAN)应用。LoRaWAN是基于LoRa技术的协议,提供了低功耗、长距离通信和广域覆盖等特性。
NB-IoT(Narrowband Internet of Things):NB-IoT是一种用于低功耗广域物联网通信的蜂窝网络技术,具有广域覆盖和低功耗的特点,适用于连接大量低功耗设备。

10. 是否能够使用XCOM动态显示数据?

不能,XCOM只能一个一个数据单独显示,不能在同一块区域动态显示,同块数据显示可以使用GUI或者QT上位机自主开发。

11. 在FreeRTOS中,软件定时器(Software Timer)是一种用于在任务中执行定时操作的机制。软件定时器允许开发者在任务中创建定时器对象,然后根据设定的时间间隔执行特定的操作或函数。

软件定时器的作用有以下几个方面:
周期性任务调度:软件定时器可以用于周期性地调度任务。通过设置定时器的时间间隔,可以让任务按照一定的周期执行,实现周期性的任务调度。
延时操作:软件定时器可以用于实现延时操作。任务可以创建一个定时器,并设置一个延时时间,然后在定时器超时后执行相应的操作,从而实现延时执行任务的功能。
事件触发:软件定时器可以用于触发特定的事件。任务可以创建一个定时器,并设置一个时间间隔,当定时器超时时,可以触发相应的事件,例如发送信号量、通知其他任务等。
资源管理:软件定时器可以用于资源的管理。任务可以使用定时器来管理资源的分配和释放,例如设置一个定时器来释放某个资源,避免资源被长时间占用。
总之,软件定时器在FreeRTOS中提供了一种灵活、可靠的方式来进行任务调度、延时操作和事件触发。它是一种在多任务环境下管理时间的重要工具,可以提高系统的效率和可靠性。

12. 卡尔曼滤波(Kalman Filtering)是一种用于估计系统状态的最优滤波算法。

它通过使用系统的动态模型和观测数据,结合先验信息和测量误差的统计特性,以递归的方式进行状态估计。卡尔曼滤波广泛应用于控制系统、导航系统、信号处理和机器学习等领域。
卡尔曼滤波基于以下两个关键假设:
系统状态和观测数据都可以用线性方程描述。
系统状态和观测数据都服从高斯分布,并且满足零均值和协方差矩阵的线性关系。
卡尔曼滤波的核心思想是通过融合系统的先验信息(通过系统的动态模型预测状态)和测量信息(通过观测数据提供的信息),以最小化估计误差的方差。它包括两个主要步骤:
预测(Predict):
根据系统的动态模型和先前状态估计,预测当前时刻的系统状态。
预测系统状态的协方差矩阵,用于量化预测误差的不确定性。
更新(Update):
使用观测数据来纠正预测的系统状态估计。
计算卡尔曼增益,该增益权衡了预测信息和观测信息的可靠性。
更新系统状态估计和协方差矩阵,得到更准确的系统状态估计。
卡尔曼滤波的优势在于它能够提供最优的状态估计,同时考虑了系统的动态模型和观测数据的不确定性。它适用于线性系统和高斯噪声的情况下,并且具有较低的计算复杂度。
然而,卡尔曼滤波也有一些限制。它对线性系统假设敏感,对于非线性系统需要使用扩展卡尔曼滤波(Extended Kalman Filter)或其他非线性滤波方法。此外,卡尔曼滤波对于测量误差的统计特性的准确估计要求较高。
总之,卡尔曼滤波是一种用于估计系统状态的最优滤波算法,通过融合系统的先验信息和观测数据来提供最优的状态估计。它在许多应用领域都有广泛的应用,并且是控制和导航系统中常用的滤波器之一。

13. 无人机应用领域

拍摄,如航拍,电影,广告等。地质勘探和测绘,携带传感器和摄像设备。智慧农业,农作物检测,施肥喷洒。环境监测,环境或气象检测,大气污染,水质监测,野生动物追踪。物流运输,安全监视,边境巡逻,事件响应,交通监控。

14 .LWIP

LWIP(Lightweight IP)是一个轻量级的开源 TCP/IP 协议栈,用于嵌入式系统和资源受限的设备。它是为了在资源有限的环境中提供高性能的网络通信而设计的。
LWIP 提供了一系列的网络协议,包括 IP(Internet Protocol)、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)以及常用的网络应用层协议如 HTTP、FTP 等。它具有以下特点:
轻量级:LWIP 的设计目标是占用较少的内存和处理器资源。它使用了一些优化技术,如动态内存分配的最小化、数据结构的紧凑表示等,以减少对系统资源的需求。
可裁剪性:LWIP 具有可裁剪性特点,可以根据应用需求选择性地启用或禁用特定的协议和功能模块。这使得它可以灵活适应不同的应用场景和资源限制。
支持多种网络接口:LWIP 支持多种网络接口,包括以太网、Wi-Fi、PPP(Point-to-Point Protocol)等。它可以适配不同的硬件平台和网络设备。
可移植性:LWIP 的代码具有良好的可移植性,可以在各种操作系统和嵌入式平台上使用。它提供了适配层接口,方便在不同平台上进行移植和定制。
LWIP 被广泛应用于各种嵌入式系统和物联网设备中,如传感器网络、工业控制系统、智能家居、物联网网关等。它提供了一种简单而有效的方式来实现网络通信功能,并且可以根据具体的需求进行灵活的定制和配置。

15. 嵌入式物联网方向

智能家居,工业自动化,农业和环境监测,医疗保健,智能交通,物料供应链管理,智能穿戴。

16 .OTP

OTP(One-Time Password)是一种仅可使用一次的密码,用于增强身份验证的安全性。它在许多应用中被广泛使用,包括网络登录、金融交易和身份验证服务。
OTP的主要原理是基于时间同步或挑战-响应机制。每次验证时,系统会生成一个独特的密码,该密码仅在特定时间段内有效或仅对特定挑战有效。一旦使用,该密码就会失效,并且在下一次验证时会生成一个新的密码。
常见的OTP算法包括:
时间同步OTP(Time-based OTP,TOTP):基于时间的OTP使用一个与时间相关的参数(通常是一个时间戳)和一个密钥来生成密码。常见的实现是基于HMAC-SHA算法的TOTP,例如Google Authenticator。
挑战-响应OTP(Challenge-Response OTP):在这种方案中,服务器会向客户端发送一个挑战,客户端使用预共享密钥和挑战作为输入,生成一个响应密码。服务器验证响应密码的有效性。
OTP提供了一种额外的安全层,因为即使攻击者截获了一个密码,他们也无法再次使用它进行身份验证,因为下一个密码将是不同的。这种单次使用的特性使得OTP可以有效地对抵御密码猜测、重放攻击和中间人攻击等威胁。
值得注意的是,OTP的安全性仍然依赖于密钥的保护和生成密码的算法的安全性。确保OTP生成算法和密钥管理的安全性非常重要,以避免潜在的攻击风险。

17. if(条件)return;

判断条件真假,条件为真,return结束当前函数的执行,返回到函数调用处。条件为假,跳过return,继续执行函数剩下的语句。

18. github和git什么关系

Github是基于git的代码托管平台,提供git仓库的远程存储,协作和管理,git是一种分布式版本控制系统,github是基于git的服务平台。

19. 互斥信号量使得任务同步进行,如果这两个任务都是读取数据,两个任务读取数据是交替读取还是先后读取?

互斥信号量是实现任务同步和互斥访问共享资源的机制,互斥信号量可以来确保同一时间只有一个任务在访问资源。
如果一个任务先获取互斥信号量开始读取数据,在第一个任务读取完成之后,释放互斥信号量,另一个任务开始执行,那么是先后读取,即第一个任务读完,第二个读。
如果一个任务在执行的过程中释放互斥信号量,那么另一个任务开始读取数据,两个任务交替读取。

20 .跑马灯和流水灯区别

跑马灯是按照一定的顺序循环移动,像跑马一样先前或者向后移动,流水灯是按照顺序逐个点亮或熄灭,再按照相反顺序切换状态。

21 .IWDG看门狗

IWDG(Independent Watchdog)是一种独立看门狗,用于监视和防止系统出现故障或无限循环的情况。它是一种硬件定时器,用于定期重置系统,以确保系统正常运行并避免意外崩溃。
配置IWDG的具体步骤取决于所使用的硬件平台和微控制器。下面是一般情况下配置IWDG的一般步骤:
确保IWDG时钟源已正确配置。IWDG需要一个可靠的时钟源来计时,通常使用内部看门狗时钟或外部时钟源。确保时钟源的配置正确,并且IWDG时钟频率符合系统要求。
配置IWDG预分频器(Prescaler)。预分频器用于将IWDG时钟分频,以获得期望的看门狗计数速度。根据系统需求,选择适当的预分频值。
配置IWDG重装载寄存器(Reload Register)。重装载寄存器是一个16位的寄存器,确定IWDG的重载值。在每次重载寄存器的值时,IWDG计数器会重新开始计数,如果在计数到达0之前再次重载,系统将保持正常。
启动IWDG。启动IWDG使其开始计数,并启用看门狗功能。启动IWDG后,IWDG计数器开始递减,如果计数器达到0,系统将被重置。

22. emmc掉电会丢失数据吗

EMMC(嵌入式多媒体卡)是一种闪存存储器,通常用于嵌入式系统中作为主要存储介质。与其他闪存存储器(如SD卡)不同,EMMC在掉电情况下通常不会丢失数据。
EMMC存储器采用了闪存芯片和控制器的组合,控制器负责管理数据的读写、块擦除和错误修复等操作。掉电后,EMMC控制器会将数据写入闪存芯片中,并在供电恢复后从闪存芯片中读取数据。
EMMC的控制器通常使用电容或其他辅助电源来提供短暂的电力支持,以确保在掉电期间完成数据的写入操作。这意味着即使在掉电情况下,EMMC存储器也能保持数据的完整性。
然而,需要注意的是,如果在掉电期间正在进行写操作,并且掉电时间过长或电源突然中断,可能会导致部分数据丢失或损坏。因此,在设计系统时,建议采取适当的电源管理和数据保护措施,以最大程度地减少掉电期间的数据丢失风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值