学习笔记msp430f5529lp
注:本文仅用于个人学习使用,记录笔记。
学习视频msp430f5529库函数入门教程 00.序言_哔哩哔哩_bilibili
向大佬致敬@理工男小帅-CSDN博客
CCS环境快捷键使用
代码注释:Ctrl+/ 提示/补全: Ctrl+Shift+C
放大:Ctrl++ 缩小:Ctrl+-
切换选择模式(列/竖向选择):Ctrl+Shift+A
*需要自己设置快捷键:Window -> preferences -> Editors -> Keys
GPIO
GPIO(General Purpose Input Output):
1.输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
2.输入模式下可读取端口的高低电平或电压,用以读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等
OLED+软件IIC
//由于I2C需要开漏输出(高电平无驱动能力:释放总线(I2C系统中已经配备上拉电阻))
//但是msp430没有,所以使用 “将引脚配置为输入模式(或上拉模式)” 来模拟
oled引脚配置:
#define SCL_PORT GPIO_PORT_P8
#define SCL_PIN GPIO_PIN2
#define SDA_PORT GPIO_PORT_P8
#define SDA_PIN GPIO_PIN1
UCS:430的时钟树
Unified Clock System (UCS) Introduction
The UCS module supports low system cost and ultra-low power consumption. Using three internal clock signals, the user can select the best balance of performance and low power consumption. The UCS module can be configured to operate without any external components, with one or two external crystals, or with resonators, under full software control. The UCS module includes up to five clock sources:
• XT1CLK: Low-frequency or high-frequency oscillator that can be used either with low-frequency 32768 Hz watch crystals, standard crystals, resonators, or external clock sources in the 4 MHz to 32 MHz range. XT1CLK can be used as a clock reference into the FLL. Some devices only support the low frequency oscillator for XT1CLK. See the device-specific data sheet for supported functions.
• VLOCLK: Internal very low power, low-frequency oscillator with 10-kHz typical frequency
• REFOCLK: Internal trimmed low-frequency oscillator with 32768-Hz typical frequency, can be used as a clock reference into the FLL
• DCOCLK: Internal digitally controlled oscillator (DCO) that can be stabilized by the FLL
• XT2CLK: Optional high-frequency oscillator that can be used with standard crystals, resonators, or external clock sources in the 4 MHz to 32 MHz range. XT2CLK can be used as a clock reference into the FLL.
Three clock signals are available from the UCS module:
• ACLK: Auxiliary clock. The ACLK is software selectable as XT1CLK, REFOCLK, VLOCLK, DCOCLK, DCOCLKDIV, and when available, XT2CLK. DCOCLKDIV is the DCOCLK frequency divided by 1, 2, 4, 8, 16, or 32 within the FLL block. ACLK can be divided by 1, 2, 4, 8, 16, or 32. ACLK/n is ACLK divided by 1, 2, 4, 8, 16, or 32 and is available externally at a pin. ACLK is software selectable by individual peripheral modules.
• MCLK:Master clock. MCLK is software selectable as XT1CLK, REFOCLK, VLOCLK, DCOCLK, DCOCLKDIV, and when available, XT2CLK. DCOCLKDIV is the DCOCLK frequency divided by 1, 2, 4, 8, 16, or 32 within the FLL block. MCLK can be divided by 1, 2, 4, 8, 16, or 32. MCLK is used by the CPU and system.
• SMCLK: Subsystem master clock. SMCLK is software selectable as XT1CLK, REFOCLK, VLOCLK, DCOCLK, DCOCLKDIV, and when available, XT2CLK. DCOCLKDIV is the DCOCLK frequency divided by 1, 2, 4, 8, 16, or 32 within the FLL block. SMCLK can be divided by 1, 2, 4, 8, 16, or 32. SMCLK is software selectable by individual peripheral modules
Power Management Module
可选参数:
PMM_CORE_LEVEL_O[Default]
PMM_CORE_LEVEL_1
PMM_CORE_LEVEL_2
PMM_CORE_LEVEL_3
使用/配置过程
1.根据想要配置的MCLK频率设置核心电平
2.初始化晶振对应引脚并起振
3.配置FLL(锁频环)
4.配置时钟树(主要是MCLK、SMCLK、ACLK)
5.记录外部时钟源频率
实验
实验一:
配置ACLK=4MHz,MCLK=SMCLK=25MHz,让OLED显示屏刷新加快
实验二:
配置ACLK=32768Hz,MCLK=SMCLK=24MHz,通过引脚输出,示波器观察
中断
中断定义:中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术
中断源:把引起中断的原因或者能够发出中断请求的信号源统称为中断源(外部硬件中断源和内部软件中断源,外部硬件中断源包括可屏蔽中断和不可屏蔽中断)
中断向量表:中断向量的地址是中断服务程序的入口地址的地址
中断优先级:......//断点和中断现场:......//
中断嵌套:msp430单片机会自动清除总中断允许标志位GIE,也就是说,msp430单片机的中断默认是不能发生嵌套的
中断响应过程
中断响应过程为从CPU接收一个中断请求开始至执行第一条中断服务程序指令结束,共需要6个时钟周期。中断响应过程如下:
① 执行完当前正在执行的指令;
② 将程序计数器(PC)压入堆栈,程序计数器指向下一条指令;
③ 将状态寄存器(SR)压入堆栈,状态寄存器保存了当前程序执行的状态;
④ 如果有多个中断源请求中断,选择最高优先级,并挂起当前的程序;
⑤ 清除中断标志位,如果有多个中断请求源,则予以保留等待下一步处理;
⑥ 清除状态寄存器SR,保留SCG0,因而CPU可从任何低功耗模式下唤醒;
⑦ 将中断服务程序入口地址加载给程序计数器(PC),转向执行中断服务子程序;
中断返回过程
通过执行中断服务程序终止指令(RETI)开始中断的返回,中断返回过程需要5个时钟周期,主要包含以下过程:
① 从堆栈中弹出之前保存的状态寄存器给SR;
② 从堆栈中弹出之前保存的程序计数器给PC;
③ 继续执行中断时的下一条指令。
**执行中断返回后,程序返回到原断点处继续执行,程序运行状态被恢复。假设中断发生前CPU处于某种休眠/低功耗模式下,中断返回后CPU仍然在该休眠模式下,程序执行将暂停;
__bis_SR_register(LPM3_bits + GIE); //进入低功耗模式3,且启用可屏蔽中断__bis_SR_register_on_exit(LPM3_bits); //退出低功耗模式3
中断服务函数编写示例:
#pragma vector=PORT1_VECTOR //P1口中断向量__interrupt void Port_1 (void) //声明中断服务程序,名为Port_1
{ GPIO_clearInterrupt( XXX, XXX );//清除中断标志位 _EINT(); //恢复总的中断允许 ………//上面这两步顺序不能改变,否则将进入死循环 ………
}
**MSP430单片机的中断源数量很多,比如P1,P2口每个IO口都能产生中断,16个ADC采样通道采样结束及遇到的错误也能产生中断。为了便于管理,MSP430单片机的中断管理机制把同类的中断合并成一个总中断源,具体的中断需要由软件查询中断标志位进行确定。例如,ADC的任何一个采样通道采样结束,程序都会执行ADC的中断服务程序,在ADC中断服务程序中,再查询相应标志位具体判断是哪一个通道采样结束发生了中断。
中断向量宏定义
中断向量宏定义.txt
定时器中断
timer_A
Timer_A is a 16-bit timer/counter with up to seven capture/compare registers. Timer_A can support multiple capture/compares, PWM outputs, and interval timing. Timer_A also has extensive interrupt capabilities. Interrupts may be generated from the counter on overflow conditions and from each of the capture/compare registers. Timer_A features include:
• Asynchronous 16-bit timer/counter with four operating modes
• Selectable and configurable clock source
• Uptoseven configurable capture/compare registers
• Configurable outputs with pulse width modulation (PWM) capability • Asynchronous input and output latching
• Interrupt vector register for fast decoding of all Timer_A interrupts
timer_A的四种工作模式
00:定时器暂停、并不复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。TACLR可清除定时器的计数及方向
01:**占用了CCR0捕获比较寄存器,只有1~6可用
-
TAxCCR0的数值定义了定时的周期(可以不用是固定的0FFFFh)
-
TAR= TAxCCR0定时器复位并从0开始重新计数
-
TAR= TAxCCR0时CCR0中断标志位CCIFG=1
-
定时器从TAxCCR0计数到0时,置位Timer_A中断标志位TAIFG
10:用来:1、产生多个独立的时序信号;2、产生多个定时信号
-
周期固定为0~0FFFFh,TAxCCR0与其他捕获/比较寄存器工作方式相同
-
TAR= 0FFFFh定时器复位并从0开始重新计数
-
定时器从TAxCCR0计数到0时,置位Timer_A中断标志位TAIFG
11:
-
需要对称波形时
-
TAxCCR0的数值定义了定时的周期(可以不用是固定的0FFFFh)
-
TAR= TAxCCR0时CCR0中断标志位CCIFG=1
-
定时器计数到0时,置位Timer_A中断标志位TAIFG
timer_A中断
TAxCCRn中断 -> CCIFGn
TAxCCR0中断标志位CCIFG0在Timer_A中断中具有最高的中断优先级(看中断向量表),相应的TAxCCR0中断请求被响应后,TAxCCR0中断标志位CCIFG0自动复位
TAxIV中断 -> CCIFGn + TAIFG
包括除CCIFG0外的所有CCIFGn(当前计时器)中断和TAIFG中断标志。对TAxIV中断向量寄存器的读或写,都将自动清除挂起的最高优先级中断标志位。如果同时也置位了其他中断标志位,在当前中断服务程序执行完毕后,将自动立即响应新的中断请求。
-
在捕获模式下,当定时计数器TAR的值被捕获到TAxCCRn寄存器内时,置位相关的CCIFGn中断标志位。在比较模式下,当定时计数器TAR的值计数到TAxCCRn的值时,置位相关的CCIFGn中断标志位。也可利用软件置位或清除任意一个CCIFG中断标志位。
实验
1、使用UpMode + TAxCCR0中断,LED固定1s间隔闪烁(身边有示波器的同学可观察频率)
2、使用ContinuousMode + TAxIV中断,LED固定间隔(约0.5s)闪烁(身边有示波器的同学可观察频率)
TIMER_A模块的基地址:
TIMER_A0_BASE
TIMER_A1_BASE
TIMER_A2_BASE
timer_A的PWM输出
CAP位 = 0 时,捕获/比较模块工作在比较模式,比较模式常用来产生PWM信号或者在特定的时间间隔产生中断。此时TAxCCRn的值可由软件写入,并通过比较器与主计数器TAR值进行比较,当TAR计数到TAxCCRn时,将依次产生以下事件:
1、中断标志CCIFG置位
2、内部信号EQUn = 1
3、根据输出方式不同,EQUn根据不同的输出模式触发相应的输出逻辑
4、输入信号CCI锁存到SCCI。
每个输出单元都有8种工作模式,可产生EQUx的多种信号。输出模式可通过OUTMOD控制位进行定义,具体定义如表所示:《芯片技术参考手册》P469
实验
1、单定时器单PWM输出,按键可调占空比(需要示波器观察或外接LED)
2、单定时器多PWM输出(需要示波器观察或外接LED)
死区:死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁。这段延迟时间就是死区。
The up/down mode supports applications that require dead times between output signals (see Section 17.2.5). For example, to avoid overload conditions, two outputs driving an H-bridge must never be in a high state simultaneously. In the example shown in Figure 17-9, the tdead is:
tdead = ttimer × (TAxCCR1– TAxCCR2)
Where:
tdead = Time during which both outputs need to be inactive
ttimer = Cycle time of the timer clock
TAxCCRn = Content of capture/compare register n
终于明白:什么是PWM“死区”!-电子工程专辑 (eet-china.com)
timer_A输入捕获
《msp430...芯片技术参考手册》P467
The capture mode is selected when CAP = 1. Capture mode is used to record time events. It can be used for speed computations or time measurements. The capture inputs CCIxA and CCIxB are connected to external pins or internal signals and are selected with the CCIS bits. The CM bits select the capture edge of the input signal as rising, falling, or both. A capture occurs on the selected edge of the input signal. If a capture occurs:
• The timer value is copied into the TAxCCRn register.
• The interrupt flag CCIFG is set.
The input signal level can be read at any time from the CCI bit. Devices may have different signals connected to CCIxA and CCIxB. See the device-specific data sheet for the connections of these signals. The capture signal can be asynchronous to the timer clock and cause a race condition. Setting the SCS bit synchronizes the capture with the next timer clock. Setting the SCS bit to synchronize the capture signal with the timer clock is recommended (see Figure 17-10).SCS这里推荐=1.
NOTE:
1.Changing Capture Inputs Changing capture inputs while in capture mode may cause unintended capture events. To avoid this scenario, capture inputs should only be changed when capture mode is disabled (CM = {0} or CAP = 0)
2. Overflow logic is provided in each capture/compare register to indicate if a second capture was performed before the value from the first capture was read. Bit COV is set when this occurs as shown in Figure 17 11. COV must be reset with software.
实验
1、捕获按键次数
实验1:
初始化选定的定时器
配置定时器为输入捕获模式
准备被捕获信号对应的引脚
编写中断服务函数
2、测量周期
实验二:
初始化选定的定时器
配置定时器为输入捕获模式
准备被捕获信号(一定频率方波)
编写中断服务函数
*定时器的信号连接表见《芯片数据手册》P65
*中断向量表见《芯片数据手册》P55
*中断向量宏定义: 云盘txt文档或者msp430f5529.h 4773行
USCI:UART
异步串行通信(UART)的特点:
1、传输7位或8位数据,可采用奇校验、偶校验或者无校验;
2、具有独立的发送和接收移位寄存器;
3、具有独立的发送和接收缓冲寄存器;
4、支持最低位优先或最高位优先的数据发送和接收方式;
5、内置多处理器系统,包括线路空闲和地址位通信协议;
6、通过有效的起始位检测将MSP430单片机从低功耗模式下唤醒;
7、可编程实现分频因子为整数或小数的波特率;
8、具有用于检测错误或排除错误的状态标志位;
9、具有用于地址检测的状态标志位;
10、具有独立的发送和接收中断能力;
USCI_Ax模块支持以下模式:
UART通信模式;
具有脉冲整形的IrDA通信模式;
具有自动波特率检测的LIN通信模式;
SPI通信模式。
USCI_Bx模块支持以下通信模式:
I2C通信模式;
SPI通信模式。
Initializing NOTE:
Initializing or reconfiguring the USCI module
The recommended USCI initialization/reconfiguration process is:
1. Set UCSWRST (BIS.B #UCSWRST,&UCAxCTL1) ,To avoid unpredictable behavior, configure or reconfigure the USCI_A module only when UCSWRST is set.
2. Initialize all USCI registers with UCSWRST = 1 (including UCAxCTL1).
3. Configure ports.
4. Clear UCSWRST via software (BIC.B #UCSWRST,&UCAxCTL1).
5. Enable interrupts (optional) via UCRXIE and/or UCTXIE.
波特率生成
USCI波特率发生器可以从非标准的时钟源频率中产生标准的波特率
1、产生低频波特率( UCOS16=0 低频模式)
-
允许从低频时钟源产生标准的波特率,比如32768产生9600bps波特率。
-
使用较低的输入频率,可以降低系统的功耗。
-
在高频输入下,该模式会降低多数表决法的优势。
-
波特率发生器使用1个预分频器和1个调制器产生时钟,支持小数分频
-
最大USCI波特率是UART时钟频率BRCLK的1/3
2、产生高频波特率( UCOS16=1 过采样模式)
-
支持在较高的输入时钟频率下产生较高的UART波特率
-
波特率发生器使用1个预分频器和1个调制器产生时钟,支持小数分频
-
该模式的参考时钟为BITCLK16,频率为BITCLK的1/16,故计算分频系数时需将波特率发生器的参考时钟频率除以16后再进行计算
-
最大的USCI波特率是UART源时钟频率的1/16
波特率的设置:
1、选择合适的时钟源(9600bps以下,可以选择ACLK作为时钟源,以上建议选择较高的SMCLK作为时钟源)
2、在某些特殊应用中,也可以使用外部的时钟输入作为波特率发生器的时钟源 UCAxCLK
3、分频因子 N = fBRCLK
/ f波特率
。分频因子N通常不是一个整数值,故系统中用一个分频器和一个调制器来尽可能接近分频因子。如果N等于或大于16,可以通过置位UCOS16选择过采样模式
1、低频波特率设置
预分频器 UCBRx = int(N) ; 调制器 UCBRSx = round((N-int(N))x8)
2、高频波特率设置
预分频器 UCBRx = int(N/16) ;调制器 UCBRFx = round(((N/16)-int(N/16))x16)
实验
1、串口收发实验(收到什么就发什么)
2、printf打印实验
*常用波特率配置表《芯片数据手册》P952
*本节库函数《函数库手册》P476
USCI_A_UART模块的基地址:
USCI_A0_BASE
USCI_A1_BASE
ADC
-
ADC理论工作原理: ADC在模拟信号转化为数字信号需要经过采样、保持、量化和编码。采样和保持在采样保持电路中完成,而量化和编码步骤则在ADC中完成;
-
ADC的位数:ADC的位数为ADC模块采样转换后输出结果的位数,如12位ADC采样转换后的输出结果为12位表示的数据,范围为0~4096;
-
分辨率: 分辨率表示输出数字量变化的一个相邻数码所需输入模拟电压的变化量,比如12位ADC若满刻度采样电压为5V(msp430f5: 3.3V),那最小分辨率为 5*(1/4096)=1.22mV
-
量化误差: 量化误差是由于用有限数字对模拟数值进行离散取值(量化)而引起的误差。量化误差是无法消除的,但是可以通过提高分辨率减少量化误差。
-
采样周期:采样周期是每两次采样之间的时间间隔,采样周期包括采样保持时间和转换时间。
-
采样频率:也称为采样速率或者采样率,定义为每秒从连续信号中提取并组成离散信号的采样个数,单位为赫兹(Hz)。采样频率的倒数是采样周期。实际使用中采样频率应为被采样信号中最高频率的5~10倍(理论是2倍_香农采样定理)
MSP430F5529 ADC12_A
特性包括:
最大转换速率超过 200 ksps(千次采样每秒)
单调的 12 位转换器,无丢失代码
带可编程采样周期的采样保持电路,可通过软件或定时器控制
可通过软件或定时器启动转换
软件可选择的片上参考电压生成(MSP430F54xx(仅非 A 系列):1.5 V 或 2.5 V,其他设备:1.5 V、2.0 V 或 2.5 V)
软件可选择内部或外部参考
最多 12 个单独可配置的外部输入通道
内部温度传感器、AVCC 和外部参考的转换通道
正负参考源均可独立选择通道
可选择的转换时钟源
单通道、重复单通道、序列(自动扫描)、重复序列(重复自动扫描)转换模式
ADC 核心和参考电压可以分别关闭
用于快速解码 18 个 ADC 中断的中断向量寄存器
16 个转换结果存储寄存器
有4种转换模式,可以通过CONSEQx位进行选择:
00:单通道单次转换
01:序列单通道单次转换
10:单通道多次转换
11:序列多通道多次转换
-
ADC内核采用可编程参考电压VR+、VR-作为转换上下限,最终转换结果满足 NADC=4095x(Vin - VR-)/(VR+ - VR-)
-
ADC控制位只能在ENC=0时被修改,转换发生前必须置1
-
模拟输入多路复用器,12路外部输入+4路内部输入
-
ADC参考电压可编程6种可选,内部参考模块不使用时可关闭降低功耗
-
包含16个结果缓冲寄存器、16个控制器寄存器。控制寄存器用于控制其相连的缓冲寄存器对应的输入通道与参考电压。正确配置后转换结果会自动存于结果缓冲寄存器
当采样触发信号SHI出现上升沿时将启动模数转换。可通过SHSx位选择,可选项有:ADC12SC(软件触发)、TA0_CCR1、TB0_CCR0、 TB0_CCR1(芯片数据手册P65)
The ADC12_A supports 8-bit, 10-bit, and 12-bit resolution modes selectable by the ADC12RES bits. The analog-to-digital conversion requires 9, 11, and 13 ADC12CLK cycles, respectively. The polarity of the SHI signal source can be inverted with the ADC12ISSH bit. The SAMPCON signal controls the sample period and start of conversion. When SAMPCON is high, sampling is active. The high-to-low SAMPCON transition starts the analog-to-digital conversion.
ADC12SHP定义了两种不同的采样时序方法:
扩展采样时序模式和脉冲采样时序模式(芯片技术参考手册P736)
The extended sample mode is selected when ADC12SHP = 0.
Set ADC12SHP = 1 to select the pulse sample mode.
注意:使用MSP430单片机片内的温度传感器时,采样周期必须大于30ms。温度传感器的偏移误差比较大,在大多数实际应用中需要进行校准。
实验
1:单通道单次转换&单通道多次转换
2:序列多通道单次转换&序列多通道多次转换
3:关于参考电压--讲解官方例程
*12-Bit ADC, Power Supply and Input Range Conditions、Timing Parameters 见《芯片数据手册》P44
*本节库函数《函数库手册》P53
ADC12模块的基地址:ADC12_A_BASE
相关文章:
学习笔记msp430f5529lp
注:本文仅用于个人学习使用,记录笔记。 学习视频msp430f5529库函数入门教程 00.序言_哔哩哔哩_bilibili 向大佬致敬理工男小帅-CSDN博客 CCS环境快捷键使用 代码注释:Ctrl/ 提示/补全: CtrlShiftC 放大:Ctrl 缩小:Ctrl- 切换选择模式&…...
人工智能应用:从技术突破到生态重构的演进之路
一、人工智能的发展历程:从符号主义到通用智能探索 人工智能(AI)的发展始于20世纪中叶,其历程可划分为四个关键阶段: 符号主义与早期探索(1950s-1970s) 以逻辑推理和专家系统为核心&…...
【ZYNQ Linux移植】4-内核移植
文章目录 0 写在前面1 内核源码的文件结构2 Linux内核移植2.1 移植配置文件2.2 移植设备树2.3 创建脚本进行编译2.4 备份相关文件 3 测试4 总结5 参考资料 0 写在前面 这是一个系列博客,详细介绍如何在 ZYNQ 与 ZYNQ MP 平台上如何移植 Linux 系统。目前网络上的大部…...
代码随想录算法训练营第三十二天
LeetCode/卡码网题目: 518. 零钱兑换 II377. 组合总和 Ⅳ790. 多米诺和托米诺平铺(每日一题)57. 爬楼梯(第八期模拟笔试) 其他: 今日总结 往期打卡 背包问题特点: 滚动数组背包遍历顺序 完全背包从小到大,即基于当前物品更新过的继续更新01背包从大到…...
java CompletableFuture 异步编程工具用法1
1、测试异步调用: static void testCompletableFuture1() throws ExecutionException, InterruptedException {// 1、无返回值的异步任务。异步线程执行RunnableCompletableFuture.runAsync(() -> System.out.println("only you"));// 2、有返回值的异…...
Spring Boot 集成 Solr 的详细步骤及示例
环境准备 安装 Solr :从 Solr 官网(Welcome to Apache Solr - Apache Solr)下载并安装最新版本,然后通过命令 bin/solr start 启动 Solr 服务,使用 bin/solr create -c mycore 创建一个新的 Solr 核心。 安装 JDK &am…...
Nemotron-Research-Tool-N1 如何提升大语言模型工具使用能力?
Nemotron-Research-Tool-N1如何提升大语言模型工具使用能力? 如今,大语言模型(LLMs)发展迅猛,给它配备外部工具成为研究热点。但传统方法存在不少问题。这篇论文提出的Nemotron-Research-Tool-N1系列模型带来新突破&a…...
OpenCV进阶操作:图像直方图、直方图均衡化
文章目录 一、图像直方图二、图像直方图的作用三、使用matplotlib方法绘制直方图2.使用opencv的方法绘制直方图(划分16个小的子亮度区间)3、绘制彩色图像的直方图 四、直方图均衡化1、绘制原图的直方图2、绘制经过直方图均衡化后的图片的直方图3、自适应…...
Android控件VideoView用法
一 控件UI <VideoViewandroid:id="@+id/videoView"android:layout_width="match_parent"android:layout_height="match_parent"android:scaleType="fitCenter" /> 二 配置 <?xml version="1.0" encoding="u…...
人工智能数学基础(十)—— 图论
图论作为数学的重要分支,为人工智能提供了强大的建模和分析工具。无论是社交网络分析、路径规划还是数据结构设计,图论都发挥着不可替代的作用。今天,我将带领大家深入浅出地探索图论的核心概念,并结合 Python 实例,让…...
深入探索Anthropic Claude与Spring AI的融合应用
深入探索Anthropic Claude与Spring AI的融合应用 前言 在人工智能的蓬勃发展进程中,自然语言处理领域不断涌现出强大的模型和工具。Anthropic Claude系列基础AI模型凭借其出色的性能,在各种应用场景中展现出巨大潜力,为开发者和企业提供了丰…...
Python爬虫实战:获取优美图库各类高清图片,为用户提供设计素材
一、引言 在互联网时代,高清壁纸资源丰富多样,而优美图库作为一个提供大量精美壁纸的网站,吸引了众多用户。通过 Python 爬虫技术,可以自动化地从该网站获取所需的壁纸资源,为用户节省时间和精力。然而,网站通常会采取反爬措施来防止数据被恶意抓取,因此需要在爬虫程序…...
Java常用注解大全(基于JDK17+SpringBoot3)
一、基础注解(Java原生) 编译相关 @Override:方法重写校验 java 复制 下载 @Override public String toString() { return "CustomObj"; } @Deprecated:标记过时元素 java 复制 下载 @Deprecated(since="1.8", forRemoval=true) public void oldMethod…...
【NLP】30. 深入理解 In-Context Learning 的核心机制与策略
In-Context Learning(ICL)详解:提示学习时代的语言理解 一、什么是 In-Context Learning(ICL)? In-Context Learning 是指: 不改变模型参数,通过在输入中加入示例(demon…...
数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记
数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记 环境准备 这篇笔记记录了我在 Windows 10/11 上部署数字化工厂中央控制室驾驶舱系统的全过程,包括各种常见问题的解决方法。部署过程中使用了国内镜像源来加快下载速度。 前置需求 Python:3.8 到…...
数据库的原子事务
原子事务 11.1 全有或全无效应 二级索引需要原子性的多键更新,这不仅对数据库内部一致性至关重要,也对应用数据的一致性非常有用(例如考虑账户余额和账户交易)。 我们将放弃get-set-del接口,并添加一个新的接口来允…...
基于51单片机的红外人体感应报警器
基于51单片机的人体监测报警 (仿真+程序+原理图+PCB) 功能介绍 具体功能: 1.按下报警按钮会发生红LED蜂鸣器声光报警; 2.若检测到人,黄LED打开; 3.按下布防按键&…...
从Excel到高级工具:数据分析进阶指南
从Excel到高级工具:数据分析进阶指南 在数据分析的世界里,Excel曾经是众多人的第一站。它简单、直观、功能强大,从普通用户到专业人士,无不对其依赖。然而,随着数据规模增长、分析需求升级,Excel渐渐显得力…...
Excel VBA 自定义函数
一、VBA 函数基础概念 在 Excel VBA 中,函数主要分为两种类型: Sub 过程:执行操作但不返回值Function 函数:执行操作并返回结果 基本语法示例 1. Function 函数示例 定义一个返回字符串的公共函数 Public Function GetGreetin…...
004-nlohmann/json 快速认识-C++开源库108杰
了解 nlohmann/json 的特点;理解编程中 “数据战场”划分的概念;迅速上手多种方式构建一个JSON对象; 1 特点与安装 nlohmann/json 是一个在 github 长期霸占 “JSON” 热搜版第1的CJSON处理库。它的最大优点是与 C 标准库的容器数据…...
【Quest开发】接入语音转文字
参考官方文档:https://developers.meta.com/horizon/documentation/unity/voice-sdk-tutorials-overview 软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72 硬件:Meta Quest3 注意:需全程科学上网 Meta提供了一…...
Vim 命令从头学习记录
学习链接:eleon-vim基础教程 Vim - 基础翻屏操作 光标移动:hjkl 20j 向下移动20行,w 向后移动一个字符,b 向前移动一个字符。 Ctrl u 向上翻半页 UP Ctrl d 向下翻半页 Down Ctrl f 向下翻整页 Forward Ctrl b 向上翻整页 …...
[Linux]物理地址到虚拟地址的转化
[Linux]物理地址到虚拟地址的转化 水墨不写bug 文章目录 一、再次认识地址空间二、页表1、页表的结构设计2、页表节省了空间,省在哪里?3、页表的物理实现 一、再次认识地址空间 OS和磁盘交互的内存基本单位是4KB,这4KB通常被称为内存块。OS对…...
js获取明天日期、Vue3大菠萝 Pinia的使用
直接上代码 const today new Date(2019, 2, 28) const finalDate new Date(today) finalDate.setDate(today.getDate() 3)console.log(finalDate) // 31 March 2019 安装 yarn add pinia # or with npm npm install pinia创建第一个store仓库 1、在src目录下创建store目录…...
矩阵置零(中等)
可以用两个标记数组分别记录每一行和每一列是否有零出现。 首先遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true。然后再次遍历该数组,用标记数组更新原数组。 class Solution {public void set…...
GZ人博会自然资源系统(测绘)备考笔记
本文为备考 GZ人才博览会自然资源系统(测绘) 的笔记,包括若干 知识点整理 及 近两年考核(面试)真题 (文末附《GZ人博会自然资源系统(测绘)备考笔记》1 的下载链接)。 目录…...
《进制转换的终极指南:原理、方法与编程应用》
🚀个人主页:BabyZZの秘密日记 📖收入专栏:C语言 🌍文章目入 一、进制转换的基本原理二、进制转换方法总结(一)使用权重法的转换1. 二进制 → 十进制2. 八进制 → 十进制3. 十六进制 → 十进制 &…...
2025系统架构师---论软件的设计模式论文
2023 年,我所在的公司承担了某部网络靶场的研发任务。我作为公司的技 术总监,希望能打造基于网络靶场的系列产品,参与到项目的设计中,以期开发 扩展性和可维护性良好的网络靶场,为以后的产品开发打下基础。网络靶场是网 络安全技术研究的基础支撑平台,它利用虚拟的和实物…...
嵌入式Linux驱动学习
Ubuntu18 下载链接 https://releases.ubuntu.com/bionic/ Ubuntu配置静态IP 更新Ubuntu18的镜像源 以清华大学镜像源举例 网站:https://mirrors.tuna.tsinghua.edu.cn/ 第一步点开网站搜索ubuntu然后点击问号 第二步选择自己的Ubuntu版本 第三步在Ubuntu中复制…...
基于大模型的子宫腺肌病全流程预测与诊疗方案研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、子宫腺肌病概述 2.1 疾病定义与病理机制 2.2 流行病学特征 2.3 现有诊断与治疗方法综述 三、大模型技术原理与应用基础 3.1 大模型简介 3.2 在医疗领域的应用现状 3.3 适用于子宫腺肌病预测的可行性分析…...
Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切
一、软件介绍 文末提供程序和源码下载 Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切。 二、软件特点 Notebook 是作家的规划工具,用于创建从宇宙到角色、情节到单个项目的任何内容。通过浏览器、…...
关于 dex2oat 以及 vdex、cdex、dex 格式转换
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ dex2oat dex2oat 是 Android 系统中的一个核心工具,负责将应用中的 .dex(Dalvik Executable)字节码编译为本地机器代码&am…...
Java---Object和内部类
Object类和内部类 前言:一、Object类1.object类初识2.Object的方法2.(1).获取对象的信息--toString方法2.(2).对象比较equals方法2.(3).hashCode方法 二、内部类1.内部类初识:2.内部类的分类:2.(1).实例内部类2.(2).静态内部类2.(3).匿名内部…...
【OSPF协议深度解析】从原理到企业级网络部署
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心配置实现案例1:单区域基础配置案例2:多区域配置案例3:安全认证配置 运行…...
linux tar命令详解。压缩格式对比
1.压缩格式对比 压缩格式命令选项文件扩展名压缩率速度无压缩-cvf.tar无最快gzip-czvf.tar.gz中等较快bzip2-cjvf.tar.bz2较高较慢xz-cJvf.tar.xz最高最慢 9. 更多参考 【Linux基础】文件压缩tar命令指南tar压缩方式对比...
C++和Lua混和调用
为什么要C/C 流行的语言,学习人员多高性能,对于嵌入式设备则是省电大量的第三方库 为什么要Lua C缺点:编译慢,调试难,学习难度大Lua优点: 最快的脚本语言可以编译调试与C/C结合容易Lua是对性能有要求的必…...
Cadence高速系统设计流程及工具使用
上一章已经谈到,在Cadence的高速设计流程中,有两个重要的工具SigXP和Constrain Manager(CM约束管理器)。SigXP是仿真分析工具和约束生成工具,我们就是使用这个工具对关键信号进行仿真的。SI工程师通过对仿真结果的分析…...
Unity:AddTorque()(增加旋转力矩)
目录 什么是 AddTorque()? 第一性原理出发:什么是 Torque(力矩)? Torque 公式 Unity 中 AddTorque 的工作原理 参数属性 🔍 Linear Drag(线性阻力) 线性阻力模拟的现实情况&…...
嵌入式硬件设计全解析:从架构到实战
一、嵌入式硬件设计核心架构与系统组成 1. 处理器选型与架构设计 (1)处理器类型与应用场景 处理器类型 代表架构 / 型号 典型应用场景 核心优势 微控制器(MCU) ARM Cortex-M3/M4、STM32F 系列 低功耗控制、小型设备 集成外设、低功耗、低成本 微处…...
R7打卡——糖尿病预测模型优化探索
🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 1.检查GPU import torch.nn as nn import torch.nn.functional as F import torchvision,torch# 设置硬件设备,如果有GPU则使用,没有…...
win10开了移动热点,手机无法连接,解决办法(chatgpt版)
提问: win10连着网线上网,有无线网卡intel Wireless-AC 9560网卡 可以用电脑开移动热点给手机连接吗?如何设置?我现在可以开热点,但是手机连不上,显示正在获取ip地址后就连不上了 chatgpt回答:…...
下载core5compat 模块时,被禁止,显示 - servese replied: Forbbidden. -->换镜像源
怎么解决? --->换镜像源 方法 1:使用命令行参数指定镜像源 在运行 Qt 安装器时,通过 --mirror 参数指定镜像源: # Windows qt-unified-windows-x64-online.exe --mirror https://mirrors.ustc.edu.cn/qtproject# Linux/macO…...
《MATLAB实战训练营:从入门到工业级应用》高阶挑战篇-《用无人机仿真玩转PID控制:MATLAB四旋翼仿真建模全攻略》
《MATLAB实战训练营:从入门到工业级应用》高阶挑战篇-✈️ 用无人机仿真玩转PID控制:MATLAB四旋翼仿真建模全攻略 🚁 欢迎来到这篇超级详细的MATLAB四旋翼无人机仿真教程!无论你是控制理论爱好者、无人机发烧友,还是M…...
GESP2024年3月认证C++八级( 第二部分判断题(1-5))
孙子定理参考程序: #include <iostream> #include <vector> using namespace std;// 扩展欧几里得算法:用于求逆元 int extendedGCD(int a, int b, int &x, int &y) {if (b 0) {x 1; y 0;return a;}int x1, y1;int gcd extende…...
PHP的现代复兴:从脚本语言到企业级服务端引擎的演进之路-优雅草卓伊凡
PHP的现代复兴:从脚本语言到企业级服务端引擎的演进之路-优雅草卓伊凡 一、PHP的历史误解与现实真相 1.1 被固化的陈旧认知 当卓伊凡浏览知乎上关于PHP的讨论时,发现大量回答仍然停留在十年前的刻板印象中。这些误解包括但不限于: “PHP只…...
手表功能RunModeTasks
RunModeTasks 功能解释 “RunModeTasks 执行特定于当前模式的功能 根据模式控制作行为”这句话是指 OV-Watch 智能手表项目中的一组任务,这些任务负责管理设备的运行模式并根据不同模式控制设备的行为。 主要组成部分 RunModeTasks 主要由以下三个部分组成&#…...
Qt6.8中进行PDF文件读取和编辑
1.环境配置 在 .pro 文件中添加 PDF 模块依赖: QT core gui pdf # 添加 pdf 模块 注意:独立 pdf 模块的起始版本是Qt 5.15,建议需要 PDF 功能的开发者优先选择此版本或更高版本 2.读取PDF 文件 核心类:QPdfDocument…...
Barrett Reduction算法优化:更紧的界限消除冗余的减法
1. 引言 Barrett Reduction 是一种被广泛使用的模 m m m 运算算法。在zkSecurity 受NEAR团队所委托的(针对RustCrypto: NIST P-256 (secp256r1) elliptic curve——https://github.com/RustCrypto/elliptic-curves/tree/master/p256)进行的 Rust p256 …...
Node.js 是什么?
Node.js 是什么? Node.js 是一个基于 Chrome V8 JavaScript 引擎 的 跨平台 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它使开发者能够使用 JavaScript 编写后端(服务端)程序,而不仅仅局限于浏览器端(前端)。 1. Node.js 的核心特点 (1) 基于 Chrom…...
数据结构中 数组、链表、图的概念
数据结构是计算机存储、组织数据的方式,数组、链表和图是三种常见的数据结构,下面为你详细介绍它们的概念: 数组 数组是一种线性数据结构,它由一组相同类型的元素组成,这些元素存储在连续的内存位置上。每个元素都可…...