自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 在keil里头文件的使用方法

总之,在使用Keil头文件时,需要注意正确引入、避免重复引入、检查依赖关系、阅读文档、更新版本、避免修改系统头文件、处理冲突等问题,以保证代码的正确性和可维护性。避免修改系统头文件:尽量避免修改系统提供的头文件,以免造成不必要的问题,可以通过定义自己的头文件来扩展功能。处理头文件冲突:如果使用的两个头文件存在冲突,可以使用条件编译的方式,对不同的头文件进行区分,以避免冲突。查看头文件文档:阅读头文件文档,了解头文件提供的函数和宏定义等信息,以正确使用头文件中的功能。在代码中使用头文件时,可以使用。

2024-03-31 21:01:08 1160 1

原创 keil的内置变量_FILE_ _DATE_

注意,这些内置变量的名称和格式在不同的编译器中可能有所不同。以上是Keil中的常用内置变量,其他编译器可能有类似的功能但使用不同的变量名。:表示当前所在的函数名和行号。该变量是一个字符串常量,格式为"function_name:line_number"。该变量是一个字符串常量,格式为"MMM DD YYYY"。这些内置变量可以在程序中使用,以获取有关当前环境和编译信息的信息。该变量是一个字符串常量,格式为"HH:MM:SS"。:表示当前所在的源文件的文件名。:表示当前所在的源文件的行号。

2024-03-30 22:15:06 989

原创 单片机的程序里使用printf的步骤

除了基本的格式转换符外,printf还提供了许多其他的格式控制选项,如宽度控制、精度控制、填充字符等,可以根据需要进行深入学习和使用。详细的用法可以参考C语言的官方文档或相关教程。在printf中,%d、%f、%c和%s是格式转换符,用于表示要输出的数据的类型。它们与对应的变量一起使用,可以在输出时按照指定的格式打印出变量的值。printf是C语言中的一个常用函数,用于将格式化的数据输出到标准输出设备(通常是控制台)。printf是一个标准的函数,是在stdio.h里声明的,所以要添加这个头文件。

2024-03-28 21:38:02 525 1

原创 #define的用法

指令将会在编译预处理阶段将所有的标识符替换为它们的对应文本,然后再进行编译。这样可以提高代码的可读性和灵活性,减少重复代码的工作量。仅仅是一个简单的文本替换,不会进行类型检查和错误处理,因此在使用时需要谨慎考虑其副作用。是一个预处理指令,用于定义一个标识符的替换文本。它可以用来定义常量、宏和函数宏。在C/C++语言中,

2024-03-27 22:04:29 298

原创 define也会骗人的

话说老板让把两个功能模块合在一起,是一个单片机控制的那种,同时需要对各两个模块的一些参数根据新设备重新设定。身为打工人的本分,就是干杯。经过千辛万苦终于把代码整合在一起了,上硬件测试,然后发现有一个功能异常。这个功能是RFID读卡,异常现象是开机上电后,模块有天线能量输出,但是一发送读卡命令,天线就关闭了。

2024-03-27 22:00:49 1120

原创 C语言关键字详解

C语言关键字是预定义的用于控制程序结构和实现特定功能的单词,关键字在C语言中具有特殊的含义,不能用于其他目的。:用于定义一个循环体,可以指定循环的初始值、循环条件和循环末尾的操作。:用于定义一个条件语句,根据条件是否成立来执行不同的代码块。:用于定义一个循环体,只要条件满足就一直执行循环体中的代码。:用于结束当前循环的迭代,开始下一次循环的迭代。:用于定义与if语句条件不成立时执行的代码。:用于声明无返回值的函数或不带参数的函数。:用于定义switch语句中的分支条件。:用于定义常量,声明的变量不可更改。

2024-03-26 22:04:50 221

原创 控制传输和中断传输能否同时使用呢

USB(Universal Serial Bus)是一种常用的计算机外部设备连接标准,它支持多种传输方式。:控制传输是USB中最基本的传输方式,用于设备的配置和管理。它通过控制端点(Control Endpoint)进行数据传输,可以发送命令和获取设备状态等信息。:中断传输用于周期性地传输小量数据,例如鼠标和键盘输入。它通过中断端点(Interrupt Endpoint)进行数据传输,具有低延迟和实时性。:批量传输用于大容量数据的传输,例如打印机输出或大文件的传输。

2024-03-26 20:39:53 388

原创 李逵还是李鬼,串口接受数据也会遇到这样的问题吗?

设备A就会把本来的长度信息len1 len2,判断成为02 len1(李逵变成了李鬼),就是大于512字节,但是后面没有这么多数据,就一直等着等着啊。话说串口通信应该是非常稳,一对一交流,没有第三者,距离也不会太远,但是现在遇到了一个问题,通信异常了,只有下行的命令,没有返回,大有任你山风海啸我只当耳旁风的架势。设备A的数据格式是02 + 长度(数据长度,两字节表示) + 数据 + 03,其中长度和数据都是原始格式,比如有两个字节数据,长度部分就是00 02,十六进制形式。这下不让人困惑了,通信异常了。

2024-03-25 22:14:25 342

原创 单片机运行卡尔曼滤波算法的基本步骤(AI创作助手)

需要注意的是,单片机上的实现可能会有一些硬件和软件限制,因此可能需要对算法进行一定的优化和简化。同时,卡尔曼滤波算法需要对系统的动态特性和传感器噪声等参数进行准确的估计,以保证滤波效果。传感器测量更新:将传感器数据与预测的状态向量进行比较,并计算残差。初始化:设定初始状态向量和协方差矩阵,分别表示估计状态的初始值和不确定性。传感器数据读取:从传感器中读取原始数据,并对数据进行预处理,如去除噪声。返回第3步,重复进行状态预测和传感器测量更新,直到完成所有数据的处理。

2024-03-24 22:18:37 243 1

原创 关于这件事,还是想的太简单了

volatile是Java中的关键字,用于声明变量。它的作用是告诉编译器该变量将被多个线程访问和修改,因此不应该进行编译器优化,需要每次从内存中读取最新的值。具体来说,volatile的作用包括以下几个方面:禁止指令重排序:编译器和处理器在进行指令优化时,有时会对指令进行重排序,但是对于volatile变量,编译器会保证不会对其指令进行重排序。保证可见性:当一个线程修改了volatile变量的值时,其他线程可以立即看到最新的值,不需要等待缓存写回主存。

2024-03-24 22:10:04 336

原创 一个延时耗费了两天的时间

仔细读程序吧,大部分是原厂提供的驱动,读着读着发现有部分是可以(xue yao)自己改动的一个函数----软件延时函数。按照注释里要求的时间,重新写了这部分代码,保存、编译、下载、运行,一路丝滑到底啊。起初怀疑是更新的程序有问题,就恢复到原始代码重新编译,问题依然存在,奇怪是原始的生产程序,机器正常了。后来想可能是和之前使用的编译器版本不同,导致延时函数产生的延时缩小,对外部芯片操作时序不达标,而引起的外部芯片没有正确初始化,进而不能正常工作导致的问题。使用打log,点灯,最后上了终极手段—仿真,然并卵。

2024-03-21 22:06:49 237

原创 phpalSli15693_ActivateCard()读取多张15693卡片

使用phpalSli15693_ActivateCard()同时读取多张15693卡片

2023-10-31 22:35:31 49

原创 2020-03-19

公司在三层楼的顶层。这段时间都是自己带饭中午吃,洗碗的地方和洗手间很近。有时去洗碗时,随便去趟洗手间。这样就会想先洗碗还是先去洗手间呢。当然,先去哪个都可以,这两个没有什么相关性,但是三层的水压不太好,如果先去洗手间,冲水后,水龙头的水流就特别小,洗碗就很烦。有时,似乎没有关系的事,却因为经常忽略的因素联系在一起。...

2020-03-19 08:25:23 56

hadoop安装配置步骤

hadoop安装配置步骤。 转载网上步骤。

2024-03-31

毕业设计项目写作技巧以及和导师沟通需要注意的事项

毕业设计项目写作技巧 如何明确毕业设计项目的目标和主题? 如何与导师进行有效的讨论和沟通?

2024-03-28

STM32U073数据手册

本文档提供了有关STM32U073x8/B/C设备的信息,如说明、功能概述、引脚分配和定义、电气特性、包装和订购信息。 STM32U073x系列提供高达256 KB的Flash存储器和高达40 KB的SRAM,具有八种封装方式,包括32至81引脚的UFQFPN、WLCSP、LQFP和UFBGA封装。  STM32U073x器件提供: 一个12位ADC,两个内置的轨到轨模拟比较器,一个运算放大器 一个低功耗RTC,一个通用32位定时器,一个专门用于电机控制的16位PWM定时器,三个通用16位定时器以及三个16位低功耗定时器。 多达21个电容感应通道、三个I2C、两个SPI、四个USART和两个低功耗UART,以及一个支持设备模式的无晶振USB2.0。 一个带内部升压转换器的LCD控制器,可以驱动8x48或4x52个段码。

2024-03-27

STM32U031系列数据手册

STM32U0系列 实现功耗、性能与成本的完美平衡 STM32U0系列整合了业内的静态功耗和多种超低功耗模式,可显著节省能源并延长使用寿命。 该系列基于M0+核心,运行频率高达56 MHz,目标通过SESIP 3级、PSA 1级和NIST认证。 STM32U031 STM32U031x系列提供高达64 KB的Flash存储器和高达12 KB的SRAM,具有七种封装方式,包括20至64引脚的TSSOP、WLCSP、UFQFPN、LQFP和UFBGA封装。 12位ADC,一个内置的轨到轨模拟比较器,一个运算放大器,一个低功耗RTC,一个通用32位定时器,一个专门用于电机控制的16位PWM定时器,三个通用16位定时器以及两个16位低功耗定时器。 多达21个电容感应通道三个I2C,两个SPI,四个USART和两个低功耗UART。

2024-03-27

AN4894 How to use EEPROM emulation on STM32 MCUs

EEPROM(电可擦可编程只读存储器)用于可更新应用程序数据的非易失性存储,或在复杂系统中发生电源故障时保留少量数据。为了降低成本,只要使用特定的软件算法,就可以用片上闪存代替外部EEPROM。 本应用说明描述了通过模拟替代独立EEPROM的软件解决方案(X-CUBE-EPROM)。 内容是英文。

2024-03-26

RC663移植到STC32G/F读取15693卡片

RC663移植到STC32G/F读取15693卡片。使用STC32F或STC32G系列芯片。可以使用IO模拟,或是SPI外设操作RC663。具体使用IO,程序里有说明。使用STC8系列的8位单片机不要下载,没有参考意义。

2023-10-30

STM32-iap-usart.7z

STM官网提供的基于Ymodem协议的串口bootloader。里面有STM32L073Z_EVAL,STM32L476G_EVAL,STM3210C_EVAL三种开发板的源代码。

2019-10-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除