B题:自动循迹小车
1.任务
设计制作一个自动循迹小车。小车采用一片 TI公司LDC1314或LDC1000电感数字转换器作为循迹传感器,在规定的平面跑道自动按顺时针方向循迹前进。跑道的标识为一根直径0.6~0.9mm的细铁丝,按照图1的示意尺寸,用透明胶带将其贴在跑道上。图中所有圆弧的半径均为为20cm±2cm。
这里写图片描述
图1 跑道示意图
2.要求
(1)在图1小车所在的直线区任意指定一起点(终点),小车依据跑道上设置的铁丝标识,自动绕跑道跑完一圈。时间不得超过10分钟。小车运行时必须保持轨迹铁丝位于小车垂直投影之下。如有越出,每次扣2分。 (40分)
(2)实时显示小车行驶的距离和运行时间。 (10分)
(3)在任意直线段铁丝上放置4个直径约19mm的镀镍钢芯硬币(第五套人民币的1角硬币),硬币边缘紧贴铁丝,如图1所示。小车路过硬币时能够发现并发出声音提示。 (20分)
(4)尽量减少小车绕跑道跑完一圈运行时间。 (25分)
(5)其他。 ( 5分)
(6)设计报告 (20分)
项 目 主要内容 满分
方案论证 比较与选择,方案描述 3
理论分析与计算 系统相关参数设计 5
电路与程序设计 系统组成,原理框图与各部分的电路图,系统软件与流程图 5
测试方案与测试结果 测试结果完整性,测试结果分析 5
设计报告结构及规范性 摘要,正文结构规范,图表的完整与准确性 2
总 分 20
这里写图片描述

3.说明
(1)自动循迹小车允许用玩具车改装。小车用自带电池供电运行,不能使用外接电源。小车的尺寸为其在地面的投影不超过A4纸大小。小车自动运行后,不得有任何人工干预小车运动的行为,如遥控等。
(2)电感传感器除了使用TI公司配发的LDC1314芯片外,也可使用LDC1000芯片或模块,数量也仅限一只。不得使用任何其他类型的传感器用于循迹。
(3)跑道除指定的铁丝外,不得另外增加任何标记。跑道附近不应有其他额外金属物体。

电赛过程回放:大家都知道比赛要用到的主要器件会提前通知,因此我和队友比赛之前搭好了小车并且调试好了电感传感器LDC1000。然题目出来之后,我们决定采用LDC1314(LDC1314也是TI公司的一个电感传感器、与LDC1000相比、1314功能更加强大,相比ldc1000单通道该传感器含4通道的外部金属检测输入端)。至于小车主要是其它模块的载体和执行部件,控制的时候根据传感器反馈信息作出相应的动作与反应。

一、硬件设计

1、系统总体设计
系统总体框图如图1所示,由电源模块给单片机和L298N驱动供电。单片机读取LDC1000的值和红外测速得到的脉冲,然后把行驶距离和时间显示在液晶屏上,并且对电机进行反馈控制。
这里写图片描述

2、模块设计
(1)电源模块
考虑到小车是移动电源的电池供电,对功耗的控制在此显得尤为总要。由于开关稳压电源的效率高于一般的线性稳压电源,本系统由开关电源模块用于给单片机提供稳定的电源。主要使用以LM2576adj为电源PWM控制的输出可调降压式电源控制芯片为主的开关电源电路作为单片机的5V恒压输入。电机驱动电路(L298N电机驱动电路)使用电池输出的电压11V作为动力电源输入,减小其中不必要的能量损失。
这里写图片描述
(2):主控芯片的选择
以STM32F103VET6单片机为核心的控制方式。STM32F103VET6是意法半导体公司生产的一款以ARM cortex-m3为内核的32位微控制器。STM32F103VCT6有512KBFlash,48K的RAM,8个定时器,3个SPI,2个I2C等,片内资源丰富。工作频率可以达到72MHz,可以满足各类控制需求。ST公司的控制芯片尤其是以cortex-M系列的控制芯片已超高的性价比非常适合各种工控领域、本次电赛主要是以STM32F103VET6单片机为本次设计的微控制器。
这里写图片描述
(3)金属轨道探测模块(ldc1000或者ldc1314)
正如前面所言,比赛开始后我们放弃了调好的ldc1000改用了ldc1314,好在有ldc1000的经验,第一天我们小组做出了ldc1000的模块,也写好了相应的驱动代码。然后就开始调试小车寻迹,用了PID算法,按照P,D,I的顺序调的。途中由于用的开关电源而没有加保险管,在熬夜过程中不小心把电源接反了而烧了2576开关电源芯片(也不知道加了保险管是否真的就保险,但是后面加了保险管再也没烧过了,毕竟比赛,最好不要节外生枝)就这样在第三天早上我们调好了PID,小车能勉强走完全程完成寻迹了,心里那个激动啊,就这样我们继续修改PID参数,力求更好的效果。但第四天早上起来,不知道怎么回事把LDC1314烧了,不明不白的也不知道哪里出问题了。最悲哀就是学校老师不再给我们LDC1314。失望之后,我拿出了LDC1000,还是用ldc1000,一开始不用ldc1000是因为它只有一个通道——只能接一个线圈,而LDC1314有四个通道——能接四个线圈,所以LDC1314在寻迹上被我们理所当然的认为更好了,然而时候经过查阅datasheet和实际验证以及比赛群里的同学反映,LDC1314检测距离和灵敏度明显小于LDC1000。正式因为如此ldc’1000也是很多成功者的选择,因为ldc’1314实在是太短了,稍微数据丢失(它没有检测到)车就很容易出轨道了。LDC1000模块测量数据从LDC1000寄存器读出来低八位和高八位,合成为一个有效数值,然后通过计算可以得到等效并联电阻和谐振频率值根据这两个量,可以推知物体离线圈的距离。从第四天开始,我们改用LDC1000——方案有二:
① 用一个线圈,利用PID来判断方向的转变(认识的一位非本校的师兄就是这样实现的),不过难点在于1、线圈要大一点,感应强度要强一些。2、小车要好控制(电机和舵机要好用)。3、PID算法参数要选的非常好才行,不然很容易出轨道。
② 用两个线圈,安置在左和右用来判断方向,加上PID更可以精确一些控制。
由于我们用了直流电机(并没编码电机),其次舵机不怎么样,而且我没有好的大一点的线圈(学校老师打的PCB线圈效果极差!),担心一个线圈调不出来,所以我们采用两个线圈切换办法同样切换装置也是问题(一、用什么切换。二、切换频率对效果的影响。)方案同样有二:1、场管;2、继电器。最终选择了继电器,频率改变小一些(的确•继电器对线圈采集的数据有一定影响,而且电流有一点变化),好在最终也算实现了。
3、电机驱动模块
本次设计使用L298N作为电机驱动。L298N是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,并且配有2个使能端,能够对输出进行控制。功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。
这里写图片描述
4、其它模块
其它的相关模块如继电器驱动、1602液晶接口电路等小模块原理就较简单,此处不多赘述。

总结几点:
一:熬夜一定要放慢动作,谨慎做事,很容易因为太困弄坏东西,得不偿失(比赛七天,前五天每天4点睡,八点起,后两天连续通宵)在很累很困的情况很容易弄错的,我们烧了1314和电源板很大原因就是太累太困又心急。
二:继电器驱动使用灌电流,不能使用拉电流(一开始怎么都驱动不了继电器,就连2003都不行,也是想不通,后来查资料找到了,卡了半天时间)
三:PID参数一定对应一个系统,系统变则参数变、参数调节时应该注意参数调节的顺序和调节次序。一般遵循顺序:
a.确定比例增益 P
确定比例增益 P 时,首先去掉 PID 的积分项和微分项, 一般是令 Ti=0、 Td=0,
PID 为纯比例调节。输入设定为系统允许的最大值的 60%~70%,由 0 逐渐加大比
例增益 P,直至系统出现振荡;再反过来,从此时的比例增益 P 逐渐减小,直至
系统振荡消失,记录此时的比例增益 P,设定 PID 的比例增益 P 为当前值的
60%~70%。比例增益 P 调试完成。
b.确定积分时间常数 Ti
比例增益 P 确定后,设定一个较大的积分时间常数 Ti 的初值,然后逐渐减
小 Ti,直至系统出现振荡,之后在反过来,逐渐加大 Ti,直至系统振荡消失。
记录此时的 Ti,设定 PID 的积分时间常数 Ti 为当前值的 150%~180%。积分时间
常数 Ti 调试完成。
c.确定积分时间常数 Td
比例增益 P 确定后,设定一个较大的积分时间常数 Ti 的初值,然后逐渐减
小 Ti,直至系统出现振荡,之后在反过来,逐渐加大 Ti,直至系统振荡消失。
记录此时的 Ti,设定 PID 的积分时间常数 Ti 为当前值的 150%~180%。积分时间
常数 Ti 调试完成。
四:使用SPI3的同时不能使用JTAG的复用时钟,需要关闭其复用时钟(具体我再研究研究,比赛当时使用SPI3一开始不顺利,关闭JTAG的复用时钟就ok了)
五:LDC1314和LDC1000的芯片可以改变检测的数值范围,调大差距值,但是我认为并不能改变灵敏度,而是通过调节线圈电感和连接的电容来改变灵敏度(具体可以见TI官网的在线计算工具)
六:选用PID算法的时候,反馈一定要可靠,即选用的传感器反馈数据一定要准或则传感器一定要调准确。

最后就是一点遗憾了:第一、觉得自己准备不足,很多东西应该自己准备好的,尤其是小车,我很后悔用了一个性能太差的,直流电机(两边轮子相同电压转速还明显不一样),舵机小角度比较差,要么不转,要么转大角度。其他就是线圈我很后悔没有自己打,学校打那个确实太差,有些根本就检测不大。第二、后悔放弃LDC1000,应为LDC1314确实检测距离在我那个硬件条件太短,几乎擦着地面走,LDC1000则还要好些,几乎是两倍的距离吧,说实话一开始以为TI推销他的新出的1314就很在意这个。事实证明在硬件不太好的情况下,LDC1000还好弄一点•。第三、熬夜不要急,血的教训。

最后嗮上几张作品图
这里写图片描述
这里写图片描述
这里写图片描述
下面给出部分代码:

include

include “usart.h”

include “ldc1000.h”

include “1602.h”

include “beep.h”

include “delay.h”

include “motor.h”

include “pwm_tim5.h”

include “step_motor.h”

include “ldc_intruput.h”

include “pid.h”

extern unsigned long ProximityData; //LDC上Proximity Data
extern unsigned char flag;
extern u16 CCR3_Val , CCR4_Val ;//后轮2,3 舵机0

unsigned long red_ProximityData, bule_ProximityData;

void display(unsigned long temp,u16 adr);
void jichu_ProximityData(void);

unsigned long jichu_red,jichu_bule;
u16 time,distance;

uint8_t table[10]=”0123456789”;
uint8_t table1[10]=”Time:”;
uint8_t table2[10]=”distance:”;
extern u16 CCR3_Val;
u8 i;

int main (void)
{
NVIC_Configuration();
delay_init();
USART1_Config();
inct();
beep_Init();
SPI_LDC_Init();
TIM5_PWM_Init();
TIM7_ldc_Init(60000-1,72-1);
MOTOR_Init();
jidainqi_Init();

write_com(0x80);
delay(10);
for(i=0;i<6;i++)
write_data(table1[i]); 
write_com(0x80+0x0a);
write_data('s');
write_com(0x80+0x40);

for(i=0;i<9;i++)
write_data(table2[i]);
write_com(0x80+0x4e);
write_data(‘c’);
write_com(0x80+0x4f);
write_data(‘m’);

jichu_ProximityData();
Rear_wheel_direction(0);
while(1)
{if(jidianqi==0)              {LDCRead();if(ProximityData>9000&ProximityData<14000){red_ProximityData=ProximityData;display(red_ProximityData,0x80+0x49);}else if(ProximityData<9000&ProximityData>8000){beep=1;delay_ms(100);beep=0;}else if(ProximityData<8000){bule_ProximityData=ProximityData;

// display(bule_ProximityData,0x80+0x4F);
}
else if(ProximityData>=16000) //硬币
{
beep=1;
delay_ms(100);
beep=0;
}
delay_ms(50);
jidianqi=1;
}
else if(jidianqi==1)
{
LDCRead();
if(ProximityData>9000&ProximityData<14000)
{
red_ProximityData=ProximityData;
// display(red_ProximityData,0x80+0x49);
}
// else if(ProximityData<9000&ProximityData>8000)
// {
// beep=1;
// delay_ms(100);
// beep=0;
// }
else if(ProximityData<8000)
{
bule_ProximityData=ProximityData;
// display(bule_ProximityData,0x80+0x4F);
}
else if(ProximityData>16000) //硬币
{
beep=1;
delay_ms(100);
beep=0;
}
delay_ms(50);
jidianqi=0;
}

}
}
void display(unsigned long temp,u16 adr)
{
uint8_t i;
write_com(0x04);
delay(30);
write_com(adr);
while(temp)
{
i=temp%10;
write_data(table[i]);
temp/=10;
}
write_com(0x06);
}
void jichu_ProximityData() //获取基础值
{
u8 j;
for(j=0;j<10;j++)
{
if(jidianqi==0)
{
LDCRead();
if(ProximityData>9000&&ProximityData<18000)
{
red_ProximityData=ProximityData;
// display(red_ProximityData,0x80+0x49);
}
else if(ProximityData<9000)
{
bule_ProximityData=ProximityData;
// display(bule_ProximityData,0x80+0x4F);
}
else if(ProximityData>=18000) //硬币
{
beep=1;
delay_ms(100);
beep=0;
}
jidianqi=1;
delay_ms(100);
}
else if(jidianqi==1)
{
LDCRead();
if(ProximityData>9000&&ProximityData<18000)
{
red_ProximityData=ProximityData;
// display(red_ProximityData,0x80+0x49);
}
else if(ProximityData<9000)
{
bule_ProximityData=ProximityData;
// display(bule_ProximityData,0x80+0x4F);
}
else if(ProximityData>=18000) //硬币
{
beep=1;
delay_ms(100);
beep=0;
}
jidianqi=0;
delay_ms(100);
}
}
jichu_red=red_ProximityData;
jichu_bule=bule_ProximityData;
}

LDC1000驱动

ifndef LDC24L01_H

define LDC24L01_H

include

define GPIO_LDC GPIOC

define GPIO_LDC_CSN_Pin GPIO_Pin_5

define GPIO_LDC_CE_Pin GPIO_Pin_2

define GPIO_LDC_IQ_Pin GPIO_Pin_4

define SPI_NOP 0XFF//空指令用来读状态寄存器

/******寄存器地址区*********/

define LDC1000_CMD_REVID 0x00

define LDC1000_CMD_RPMAX 0x01

define LDC1000_CMD_RPMIN 0x02

define LDC1000_CMD_SENSORFREQ 0x03

define LDC1000_CMD_LDCCONFIG 0x04

define LDC1000_CMD_CLKCONFIG 0x05

define LDC1000_CMD_THRESHILSB 0x06

define LDC1000_CMD_THRESHIMSB 0x07

define LDC1000_CMD_THRESLOLSB 0x08

define LDC1000_CMD_THRESLOMSB 0x09

define LDC1000_CMD_INTCONFIG 0x0A

define LDC1000_CMD_PWRCONFIG 0x0B

define LDC1000_CMD_STATUS 0x20

define LDC1000_CMD_PROXLSB 0x21

define LDC1000_CMD_PROXMSB 0x22

define LDC1000_CMD_FREQCTRLSB 0x23

define LDC1000_CMD_FREQCTRMID 0x24

define LDC1000_CMD_FREQCTRMSB 0x25

// LDC BITMASKS

define LDC1000_BIT_AMPLITUDE 0x18

define LDC1000_BIT_RESPTIME 0x07

define LDC1000_BIT_CLKSEL 0x02

define LDC1000_BIT_CLKPD 0x01

define LDC1000_BIT_INTMODE 0x07

define LDC1000_BIT_PWRMODE 0x01

define LDC1000_BIT_STATUSOSC 0x80

define LDC1000_BIT_STATUSDRDYB 0x40

define LDC1000_BIT_STATUSWAKEUP 0x20

define LDC1000_BIT_STATUSCOMP 0x10

define TEST_RPMAX_MAX 0x13 /*< maximum calibration value for RPMAX /

define TEST_RPMAX_MIN 0x10 /*< minimum calibration value for RPMAX /

define TEST_RPMAX_INIT TEST_RPMAX_MIN+1 /*< RPMAX initial value /

define TEST_RPMIN_MAX 0x3D /*< maximum calibration value for RPMIN /

define TEST_RPMIN_MIN 0x3A /*< minimum calibration value for RPMIN /

define TEST_RPMIN_INIT TEST_RPMIN_MIN+1 /*< RPMIN initial value /

// Final Test Range

define TEST_RP_MSB_MAX 0x12 /*< maximum value for proximity data /

define TEST_RP_MSB_MIN 0x0A /*< minimum value for proximity data /

define TEST_FC_MAX 0x0D5D /*< maximum value for frequency counter /

define TEST_FC_MIN 0x0D39 /*< minimum value for frequency counter /

/******宏定义区*********/

define LDC_CSN_HIGH() GPIO_SetBits(GPIO_LDC, GPIO_LDC_CSN_Pin)

define LDC_CSN_LOW() GPIO_ResetBits(GPIO_LDC, GPIO_LDC_CSN_Pin) //csn置低

define LDC_Read_IRQ() GPIO_ReadInputDataBit (GPIO_LDC, GPIO_LDC_IQ_Pin)

/******函数声明区*********/
extern void SPI_LDC_Init(void);//spi的初始化
u8 SPI_LDC_RW(u8 data);
static void SPI_LDC_WriteReg(u8 reg,u8 data);//向reg寄存器中写入data
static u8 SPI_LDC_ReadReg(u8 reg);//读取指定状态寄存器的值
void LDC1000_init(void);
void LDCRead(void);
extern void MY_SPI_Init(void);
void TIM3_NVIC_Configuration(void);
static void TIM3_GPIO_Config(void);
static void TIM3_Mode_Config(void);
void TIM3_Init(void);
float CountRp(void);
unsigned long Fsensor(unsigned long lFcount);
unsigned long Fsensor(unsigned long lFcount);
unsigned long CountInductor(unsigned long lFsensor);

endif

include “ldc1000.h”

include “usart.h”

include “math.h”

define SPI_RWBIT 0x80

define Fext 32768 //32768 Hz

define ResponseTime 6144

define CapVal 0.0001 //1uF*/

unsigned long ProximityData;
unsigned long FrequencyData;
unsigned char flag;
volatile u32 speed=999;

__IO uint16_t DataRcv[5] ;

/*************初始化spi***********************
*功 能: 初始化野火的spi
*形 参: void
*返 回 值:void
*备 注:
*******************************************************/
extern void MY_SPI_Init(void)
{
SPI_InitTypeDef SPI_InitStr;
GPIO_InitTypeDef GPIO_InitStr;

/*使能GPIOB,GPIOD,复用功能时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);/*使能SPI1时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);/*对硬件stm32的SPI配置*/
/*配置 SPI_LDC_SPI的 SCK,MISO,MOSI引脚,GPIOA^5,GPIOA^6,GPIOA^7 */
GPIO_InitStr.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStr.GPIO_Mode = GPIO_Mode_AF_PP; //复用功能
GPIO_Init(GPIOA, &GPIO_InitStr);/*对从机LDC24L01的控制角配置*/
/*配置CE引脚,GPIOA^2和 CSB 引脚*/
GPIO_InitStr.GPIO_Pin = GPIO_LDC_CSN_Pin;
GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStr.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStr);/*对硬件stm32的SPI配置*/
/*配置SPI_LDC_SPI的IRQ引脚,GPIOA^3*/
GPIO_InitStr.GPIO_Pin = GPIO_LDC_IQ_Pin;
GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStr.GPIO_Mode = GPIO_Mode_IPU ;  //上拉输入
GPIO_Init(GPIOC, &GPIO_InitStr);/* 这是自定义的宏,用于拉高csn引脚,LDC进入空闲状态 */
LDC_CSN_HIGH();SPI_InitStr.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //双线全双工
SPI_InitStr.SPI_Mode = SPI_Mode_Master;                     //主模式
SPI_InitStr.SPI_DataSize = SPI_DataSize_8b;                 //数据大小8位
SPI_InitStr.SPI_CPOL = SPI_CPOL_High;                       //时钟极性,空闲时为低
SPI_InitStr.SPI_CPHA = SPI_CPHA_2Edge;                      //第1个边沿有效,上升沿为采样时刻
SPI_InitStr.SPI_NSS = SPI_NSS_Soft;                         //NSS信号由软件产生
SPI_InitStr.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;  //8分频,9MHz
SPI_InitStr.SPI_FirstBit = SPI_FirstBit_MSB;                //高位在前
SPI_InitStr.SPI_CRCPolynomial = 7;                          //CRC校验复位
SPI_Init(SPI1, &SPI_InitStr);/* Enable SPI1  */
SPI_Cmd(SPI1, ENABLE);

}

/*************向LDC中读/写一个字节*************
*功 能: 向LDC中读/写一个字节
*形 参: 写入的数据
*返 回 值: 读取得的数据
*备 注:
*******************************************************/
u8 SPI_LDC_RW(u8 data) //向LDC中读写一个字节
{
/* 当 SPI发送缓冲器非空时等待 */
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);

/* 通过 SPI2发送一字节数据 */
SPI_I2S_SendData(SPI1, data);/* 当SPI接收缓冲器为空时等待 */
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);/* Return the byte read from the SPI bus */
return SPI_I2S_ReceiveData(SPI1);

}

/*************向LDC指定的寄存器写值*************
*功 能: 向LDC指定的寄存器写值
*形 参: reg:LDC的命令+寄存器地址。
* data:将要向寄存器写入的数据
*返 回 值: 寄存器的状态
*备 注:
*******************************************************/
static void SPI_LDC_WriteReg(u8 reg,u8 data)
{

// LDC_CE_LOW();//进入待机模式1,低功耗模式,此模式下LDC可以接收数据
LDC_CSN_LOW();//拉低csn片选信号,使能LDC的spi传输

SPI_LDC_RW(reg);//向LDC发送命令和寄存器的号SPI_LDC_RW(data);//向刚才指定的寄存器写入数据LDC_CSN_HIGH();//拉高csn片选信号,即释放LDC的spi传输完毕;

}

/*************读取LDC指定的寄存器值*************
*功 能: 读取LDC指定的寄存器值
*形 参: reg:LDC寄存器地址。
*返 回 值: 状态寄存器的数据
*备 注:
*******************************************************/
static u8 SPI_LDC_ReadReg(u8 reg)
{
u8 Reg_Value;

// LDC_CE_LOW();//进入待机模式1,低功耗模式,此模式下LDC可以接收数据
LDC_CSN_LOW();//拉低csn片选信号,使能LDC的spi传输

SPI_LDC_RW(reg|SPI_RWBIT);//选择寄存器
Reg_Value = SPI_LDC_RW(SPI_NOP);LDC_CSN_HIGH();//拉高csn片选信号,即释放LDC的spi传输完毕;return Reg_Value;

}

/**********************************************************
* @brief: LDC1000初始化配置,ps:在SPI中配置了数据位16个数据长度,故
* 在发送数据时可以将地址和值进行或运算一起发送出去
* @param: none
* @return: none
***********************************************************/
void LDC1000_init(void)
{
// SPI_Write(LDC1000_CMD_RPMAX<<8|0xff);
SPI_LDC_WriteReg(LDC1000_CMD_RPMAX,0x31); //配置Rp_MAX(0x01)寄存器
SPI_LDC_WriteReg(LDC1000_CMD_RPMIN,0x1b); //配置Rp_MIN(0x02)寄存器
SPI_LDC_WriteReg(LDC1000_CMD_SENSORFREQ,0x94); //配置Sensor Frequency(0x03)寄存器
SPI_LDC_WriteReg(LDC1000_CMD_LDCCONFIG,0x17); //配置LDC Configuration(0x04)寄存器
SPI_LDC_WriteReg(LDC1000_CMD_CLKCONFIG,0x00); //配置Clock Configuration(0x05)寄存器,
//使用TBCLK作为时钟源 //配置INTB为比较输出标志位(status of Comparator output)
SPI_LDC_WriteReg(LDC1000_CMD_THRESHILSB,0x50); //配置Comparator Threshold High(0x06)寄存器低8位
SPI_LDC_WriteReg(LDC1000_CMD_THRESHIMSB,0x14); //配置Comparator Threshold High(0x07)寄存器高8位
SPI_LDC_WriteReg(LDC1000_CMD_THRESLOLSB,0xC0); //配置Comparator Threshold Low(0x08)寄存器低8位
SPI_LDC_WriteReg(LDC1000_CMD_INTCONFIG,0x02); //配置INTB Pin Configuration(0x0A),
SPI_LDC_WriteReg(LDC1000_CMD_PWRCONFIG,0x01); //配置Power Configuration(0x0B)寄存器, //为Active Mode,使能转化
}

/**********************************************************
* @brief: 使用SPI读取LDC1000中的数据
* @param: none
* @return: none
***********************************************************/
void LDCRead(void)
{
// LDC_CSN_LOW();
ProximityData = 0;
FrequencyData = 0;
while(LDC_Read_IRQ()!=0)
printf(“read 1 failed!”);
DataRcv[0] = SPI_LDC_ReadReg(LDC1000_CMD_PROXLSB); //写入将要读取的Proximity Data LSB寄存器地址(0x21)
//printf(“0 %d\r\n”,DataRcv[0]);
//SPI_Read(&DataRcv[0]); //读取上述寄存器中的值,并存入DataRcv[0]
ProximityData|= DataRcv[0] ;
while(LDC_Read_IRQ()!=0)
printf(“read 2 failed!”);
DataRcv[1] = SPI_LDC_ReadReg(LDC1000_CMD_PROXMSB); //写入将要读取的Proximity Data MSB寄存器地址(0x22)
//printf(“1 %d\r\n”,DataRcv[1]);
//SPI_Read(&DataRcv[1]); //读取上述寄存器中的值,并存入DataRcv[1]
ProximityData|= (DataRcv[1]<<8) ; //组合成ProximityData
while(LDC_Read_IRQ()!=0)
printf(“read 3 failed!”);
DataRcv[2] = SPI_LDC_ReadReg(LDC1000_CMD_FREQCTRLSB); //写入将要读取的Frequency Counter Data LSB寄存器地址(0x23)
//printf(“2 %d\r\n”,DataRcv[2]);
//SPI_Read(&DataRcv[2]); //读取上述寄存器中的值,并存入DataRcv[2]
FrequencyData|= DataRcv[2] ;
while(LDC_Read_IRQ()!=0)
printf(“read 4 failed!”);
DataRcv[3] = SPI_LDC_ReadReg(LDC1000_CMD_FREQCTRMID); //写入将要读取的Frequency Counter Data Mid-Byte寄存器地址(0x24)
//printf(“3 %d\r\n”,DataRcv[3]);
//SPI_Read(&DataRcv[3]); //读取上述寄存器中的值,并存入DataRcv[3]
FrequencyData|= (DataRcv[3]<<8) ;
while(LDC_Read_IRQ()!=0);
DataRcv[4] = SPI_LDC_ReadReg(LDC1000_CMD_FREQCTRMSB); //写入将要读取的Frequency Counter Data MSB寄存器地址(0x25)
//printf(“4 %d\r\n\n\n”,DataRcv[4]);
//SPI_Read(&DataRcv[4]); //读取上述寄存器中的值,并存入DataRcv[4]
FrequencyData|= (DataRcv[4]<<16) ; //组合成FrequencyData

// LDC_CSN_HIGH();
}
//——————————————————//
//———————-Rp 计算————————-//
//————-unsigned long CountRp() —————–//
//——————————————————//
float CountRp(void)
{
float Y;
unsigned Code;
float Rp;

Code =ProximityData;

Y = ((float)Code/32768.0);
printf(“Y value: %f\r\n”,Y);
Rp = (float)(((float)TEST_RPMAX_MAX*(float)TEST_RPMAX_MIN) / ((float)TEST_RPMAX_MIN*(1-Y)+(float)TEST_RPMAX_MAX*(float)Y));

return Rp;
}

//——————————————————//
//——————-LC震荡频率求值——————–//
//—–unsigned long Fsensor(unsigned long lFcount)—–//、
//输入参数:lFcount: Fre Code的值
//——————————————————//
unsigned long Fsensor(unsigned long lFcount)
{
unsigned long lFsensor;
unsigned long Fcount;

Fcount = lFcount;
lFsensor = (1*Fext*ResponseTime)/(3*Fcount);

return lFsensor;
}
//——————————————————//
//———————L电感求值———————-//
//–unsigned long CountInductor(unsigned long lFsensor)-//
//输入参数:lFsensor: LC谐振频率
//——————————————————//
unsigned long CountInductor(unsigned long lFsensor)
{
unsigned long Fsensor;
unsigned long L;

Fsensor = lFsensor;

L = (unsigned long)(pow(10,12)* 1/(CapVal * pow(2*3.14*Fsensor,2)) ); //uH

return L;
}
extern void SPI_LDC_Init(void)
{
TIM3_Init();
MY_SPI_Init();
LDC1000_init();
flag=1;
}

/*
* 函数名:TIM3_NVIC_Configuration
* 描述 :TIM3中断优先级配置
* 输入 :无
* 输出 :无
*/
void TIM3_NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                                                     
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;   
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

}

static void TIM3_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

}

static void TIM3_Mode_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

/* PWM信号电平跳变值 */
u16 TIM_CCR3_Val = 2;  /* -----------------------------------------------------------------------
TIME3 可以输出 4 路 PWM 波形:
TIME3_CH1   ------  PA6
TIME3_CH2   ------  PA7
TIME3_CH3   ------  PB0
TIME3_CH4   ------  PB1
----------------------------------------------------------------------- *//* Time base configuration */        
TIM_TimeBaseStructure.TIM_Period = 3;       //当定时器从0计数到999,即为1000次,为一个定时周期
TIM_TimeBaseStructure.TIM_Prescaler = 0;        //设置预分频:预分频72,即为1KHz
TIM_TimeBaseStructure.TIM_ClockDivision = 0;    //设置时钟分频系数:不分频
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM3, TIM_FLAG_Update);                                       /* 清除溢出中断标志 */
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);/* PWM1 Mode configuration: Channel3 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;       //配置为PWM模式1
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
TIM_OCInitStructure.TIM_Pulse = TIM_CCR3_Val;      //设置跳变值,当计数器计数到这个值时,电平发生跳变
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //当定时器计数值小于CCR1_Val时为高电平TIM_OC3Init(TIM3, &TIM_OCInitStructure);     //使能通道1TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;       //配置为PWM模式1
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
TIM_OCInitStructure.TIM_Pulse = TIM_CCR3_Val;      //设置跳变值,当计数器计数到这个值时,电平发生跳变
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //当定时器计数值小于CCR1_Val时为高电平TIM_OC4Init(TIM3, &TIM_OCInitStructure);     //使能通道1TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);    //使用CCR3寄存器的影子寄存器(直到产生更新事件才发生更改)//TIM_ARRPreloadConfig(TIM3, ENABLE);            // 使能TIM3重载寄存器ARR/* TIM3 enable counter */
TIM_Cmd(TIM3, ENABLE);                   //使能定时器3

}

void TIM3_Init(void)
{
//TIM3_NVIC_Configuration();
TIM3_GPIO_Config();
TIM3_Mode_Config();
}

include “pid.h”

include “sys.h”

include “motor.h”

include “delay.h”

extern unsigned long ProximityData,red_ProximityData,bule_ProximityData;
extern unsigned long jichu_red,jichu_bule;
extern u16 CCR3_Val,CCR4_Val;

void pid_pwm_red()//
{
int chazhi_z = 0, pid_val_z = 0, weifen_z=0;
// float pid_p_z = 1.05,pid_i_z = 0.1, pid_d_z = 2.5;
static int jifen_z = 0, l_chazhi_z= 0, l_val_z= 0;
float pid_p_z = 1.8,pid_i_z = 0, pid_d_z = 0;
chazhi_z = red_ProximityData - jichu_red;
jifen_z += chazhi_z;
if(jifen_z> 400)
{
jifen_z= 400;
}
else if(jifen_z < -400)
{
jifen_z = -400;
}
weifen_z = chazhi_z - l_chazhi_z;
if(weifen_z > 10)
{
weifen_z = 10;
}
if(weifen_z < -10)
{
weifen_z = -10;
}
pid_val_z = chazhi_z*pid_p_z+jifen_z*pid_i_z+weifen_z*pid_d_z;
if(pid_val_z>0)
{
TIM_SetCompare3(TIM5, CCR3_Val+pid_val_z);
TIM_SetCompare4(TIM5, CCR4_Val-pid_val_z);
}
else
{
TIM_SetCompare3(TIM5, CCR3_Val-pid_val_z);
TIM_SetCompare4(TIM5, CCR4_Val+pid_val_z);
}
l_chazhi_z = chazhi_z;
}

void pid_pwm_blue(void)
{
int chazhi_y = 0, pid_val_y = 0, weifen_y=0;
// float pid_p_y = 1.9, pid_i_y = 1, pid_d_y = 3;
static int jifen_y = 0, l_chazhi_y= 0, l_val_= 0;
float pid_p_y = 1.2, pid_i_y = 0.1, pid_d_y =0.05; //1.5 0.05
chazhi_y = bule_ProximityData-jichu_bule;
jifen_y+= chazhi_y;
if(jifen_y> 200)
{
jifen_y= 200;
}
else if(jifen_y < -200)
{
jifen_y = -200;
}
weifen_y = chazhi_y - l_chazhi_y;
if(weifen_y > 10)
{
weifen_y = 10;
}
if(weifen_y < -10)
{
weifen_y = -10;
}
pid_val_y = chazhi_y*pid_p_y+jifen_y*pid_i_y+weifen_y*pid_d_y;
if(pid_val_y>0)
{
TIM_SetCompare3(TIM5, CCR3_Val-pid_val_y);
TIM_SetCompare4(TIM5, CCR4_Val+pid_val_y);
}
else
{
TIM_SetCompare3(TIM5, CCR3_Val+pid_val_y);
TIM_SetCompare4(TIM5, CCR4_Val+pid_val_y);
}
l_chazhi_y = chazhi_y;
}

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 最新java学习路线汇总(课程大纲+视频教程+就业方向)

    最新java学习路线汇总(视频教程+课程大纲+就业指导)第一阶段:Java基础学习目标:掌握基本语法、面向对象、常用类、正则、集合、Io流、多线程、Nio、网络编程、JDK新特性、函数式编程知识点细化:1. DOS命令,JAVA发展简史,JAVA体系,JAVA的特性 2. 安装jdk, 配置环境变量…...

    2024/4/20 20:58:51
  2. crontab 的使用方法

    crontab设置ubuntu16.04server 自带crontab执行crontab -e 选择编辑器后在文本最后添加上以下 10 00 * * * /home/ubuntu/cron_cmd.sh > /home/ubuntu/cron_log 2>&1 我这里执行了一个脚本文件,里面可以放很多命令,log输出到指定文件夹。至于什么是2>&1可以…...

    2024/4/24 4:14:23
  3. 催眠经典著作

    松冈圭佑《催眠速读术》 《每天用一点神奇催眠术》 乔治弗兰克尔《探索潜意识》 郝滨《催眠与心理压力释放》 马修史维《我要催眠你》 廖阅鹏《轻松优雅学催眠》 吉尔伯特奥克利《自我催眠的神奇力量》 千叶康则《自我暗示术》 约翰.葛瑞德和理查班德勒《催眠天书》 韦伯,摩根…...

    2024/4/20 2:44:20
  4. 使用shell脚本或命令行 添加crontab 定时任务

    crontab 是运维过程中常用的定时任务执行工具一般情况下在有新的定时任务要执行时,使用crontab -e ,将打开一个vi编辑界面,配置好后保存退出,但是在自动化运维的过程中往往需要使用shell脚本或命令自动添加定时任务。接下来结束三种(Centos)自动添加的crontab 任务的方法…...

    2024/4/24 14:55:37
  5. Windows批处理命令学习二

    作者:朱金灿来源:http://blog.csdn.net/clever101 继续学习Windows批处理命令。 批处理文件参数:有点编程基础的人都知道函数有参数.批处理文件也有参数。批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"…...

    2024/5/4 11:26:14
  6. 桂林电子科技大学第三届ACM程序设计竞赛 E-区间

    E-区间 链接:https://ac.nowcoder.com/acm/contest/558/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 小猫在研究序列。 小猫在研究单调性。 给定一个长度为N的序列a1,a2,…,aN,请你选出一个最…...

    2024/4/21 0:40:54
  7. 游戏玩家的心理分析,让游戏更好的吸引玩家和抓住玩家。

    分析玩家的目的游戏必须得到玩家的认可才能有市场。符合玩家心理游戏才能得到玩家的认可,拥有较高的玩家忠诚度,才能有好的市场表现。所以只有正确的把握了玩家的心理,才能设计出一款玩家喜欢的游戏。分析玩家的目的有两个:一是在市场分析的时候,分析划分玩家的类型,为游…...

    2024/5/4 10:59:37
  8. crontab 配置 (转载)

    标题:crontab 配置 (转载)写在前面的话:自己偶尔工作中会用到crontab,待到用的时候,又想不起来具体怎么使用。趁着有点时间,找找资料、翻翻书整理了一下,然后就有了这篇稿子。权当是给自己留一个随手的笔记了。这篇稿子的内容是从书上东看一点、西看一点,从网上东看一…...

    2024/4/20 3:15:07
  9. 西安电子科技大学第16届程序设计竞赛 G-小国的复仇

    西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇2链接:https://www.nowcoder.com/acm/contest/107/G来源:牛客网题目描述众所周知,汀老师是XDUACM实验室最优秀的人,无论是学习还是打游戏。今天他突然想到一个好玩的游戏。规则是这样的,在游戏中他要得到n个小国…...

    2024/4/21 0:40:51
  10. 记录配置python爬虫定时任务crontab所踩过的坑

    在刚开始配置爬虫定时爬取的时候选取了较为简单的time.sleep()这个函数,可能由于环境配置的问题或者是不知道什么玄学的问题。并不能正常生成.csv数据文件。在换了几个方法后,最终决定采用crontab命令。配置crontab的方法在网上都有很多写的很清楚。我在这也不做过多赘述。大…...

    2024/4/21 0:40:50
  11. 批处理内部命令简明教程

    批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化…...

    2024/4/21 0:40:50
  12. 说说我的新书《MySQL DBA工作笔记》

    这是学习笔记的第 2066 篇文章6年前的某一天,我开始坚持每天写一篇文章,写东西的习惯在大学期间就有,现在拿起以前的青葱文字依然感慨,也许这就是文字带给人的记忆吧。在DBA方向,我写了两本书,第一本是Oracle方向的,2016年出版,截止现在已经重印7次,销量超过20000册,…...

    2024/4/21 0:40:49
  13. crontab的默认执行路径问题

    在Linux下,执行路径经常会影响一个程序的执行结果,最近用到crontab命令,好奇crontab的默认执行路径。 结论: crontab的默认执行路径为:当前用户的根路径。 如果希望改变执行路径,可以通过简单的shell编程的方式(见下文)。 如果不确定执行的路径,可以通过shell编程的方…...

    2024/5/2 0:07:47
  14. BAT批处理命令 教程

    第一章批处理基础第一节常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。小知识:可以在键盘上按下CtrlC组合键来强行终止一个批处理的执行过程。了解了大概意…...

    2024/5/1 22:54:18
  15. 哈尔滨理工大学软件与微电子学院程序设计竞赛题解

    题目链接 A.Race 题意: 小红和小明赛跑,速度分别为v1,v2,如果小明在某个整数秒超过小红t米及以上小红和小明赛跑,速度分别为v1,v2,如果小明在某个整数秒超过小红t米及以上小红和小明赛跑,速度分别为v1,v2,如果小明在某个整数秒超过小红t米及以上 就停下来休息s秒,赛道长…...

    2024/5/1 22:56:06
  16. 基于新浪微博的男女性择偶观数据分析(下)

    各位朋友,大家好,我是Payne,欢迎大家关注我的博客。我的博客地址是:https://qinyuanpei.github.io。对于今天这篇文章的主题,相信经常关注我博客的朋友一定不会陌生。因为在2017年年底的时候,我曾以此为题写作了一篇文章:基于新浪微博的男女择偶观数据分析(上)。这篇文章…...

    2024/4/21 0:40:44
  17. linux crontab 文件位置和日志位置

    一.文件位置 位置一般在/var/spool/cron/下,如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab 文件丢失; 二.日志文件位置 默认情况下,crontab中执行的日志写在/var/log下,如: #ls /var/log/cron* /var/log/cron /var/log/cron.1 /var/log/cron.2…...

    2024/4/21 0:40:43
  18. Ubuntu下crontab的安装和使用

    crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类…...

    2024/5/1 22:26:20
  19. 产品的高度,取决于产品经理的心学高度

    ———— / BEGIN / ————最近有位CS专业毕业,Coding3年转做产品经理的朋友一起交流,说能否推荐一些心理学的书籍适合他来看的。担心耽误人家前程,我并没有推荐某一本书,因为产品心理学的把握可能比学一门计算机语言学难。因为产品经理的心学高度决定了产品的高度,产品…...

    2024/5/2 2:12:44
  20. 代码雨怎么编写

    百度经验:jingyan.baidu.com Windows编程语言技巧。DOS命令编程。如何使用DOS命令编写一个代码雨小程序?百度经验:jingyan.baidu.com工具/原料电脑记事本百度经验:jingyan.baidu.com方法/步骤1很多人都觉得黑客帝国里,电脑屏幕上的绿色代码雨非常的炫酷。想要制作一个来…...

    2024/4/20 11:24:19

最新文章

  1. 如何缩小图片尺寸不改变清晰度?几个方法教你解决

    在平时对图片进行处理的时候&#xff0c;最害怕的就是修改过的图片质量下降&#xff0c;导致清晰度不够&#xff0c;尤其是缩小图片尺寸的时候&#xff0c;所以今天小编就来告诉大家几个关于修改图片尺寸又不改变清晰度的方法。 修改图片大小是非常普遍的图片编辑需求&#xf…...

    2024/5/8 20:50:39
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 配置交换机端口安全

    1、实验目的 通过本实验可以掌握&#xff1a; 交换机管理地址配置及接口配置。查看交换机的MAC地址表。配置静态端口安全、动态端口安全和粘滞端口安全的方法。 2、实验拓扑 配置交换机端口安全的实验拓扑如图所示。 配置交换机端口安全的实验拓扑 3、实验步骤 &#xff…...

    2024/5/3 8:38:19
  4. yolov9直接调用zed相机实现三维测距(python)

    yolov9直接调用zed相机实现三维测距&#xff08;python&#xff09; 1. 相关配置2. 相关代码2.1 相机设置2.2 测距模块2.2 实验结果 相关链接 此项目直接调用zed相机实现三维测距&#xff0c;无需标定&#xff0c;相关内容如下&#xff1a; 1. yolov4直接调用zed相机实现三维测…...

    2024/5/8 15:11:36
  5. 蓝桥杯第十五届抱佛脚(十)贪心算法

    蓝桥杯第十五届抱佛脚&#xff08;十&#xff09;贪心算法 贪心算法基本概念 贪心算法是一种在算法设计中常用的方法&#xff0c;它在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是最好或最优的算法。 贪…...

    2024/5/5 8:38:28
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57