潘多拉_英语里你只会用潘多拉的魔盒来表达潘多拉的魔盒么?

4c9adc6886c9b144268cfdb5e259cd0d.png

Pandora's box (潘多拉魔盒)

应该是大多数人耳熟能详的一个神话故事

我们经常会听到潘多拉魔盒被打开了这样的表达方式

其寓意是:坏的事情,不可预料的糟糕事情被开启

Don't open the Pandora's Box 字面意思就是这个意思

eabbd9295181f0fd913ae027e668d503.png

不过,英语里

在表达这个潘多拉的魔盒的意思时

还有另外一个同样地道的表达

这个表达就是

Open a can of worms

字面意思是打开“一个虫子罐”

can作为名词是“罐子”的意思

比如:a can of coke (一罐可乐)

打开了一罐虫子罐

各种虫子从中爬出来

软体的,粘稠的,恶臭的,恶心的,有毒的...

总之各种不好的感受你都能想到

因此,open a can or worms 在英语里

也被作为另一种表达“打开潘多拉魔盒”的意思保留了下来

例句:

1. The company’s management thought their new policy would increase employee productivity, but instead it opened a whole new can of worms.

公司管理层本以为他们的新政策将会提升员工的生产力,但实际它是打开了潘多拉的魔盒

2. His situation is completely messed up; it’s a can of worms that I’m happy not to have to deal with.

他现在的处境完全混乱不堪,简直就是一个潘多拉魔盒,我很高兴自己不必牵涉其中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是基于潘多拉开发板的rt_thread操作系统读取ap3216传感器的代码,希望能对你有帮助。 ```c #include <rtthread.h> #include <rtdevice.h> #include "ap3216c.h" #define AP3216C_I2C_ADDR 0x1E /* AP3216C I2C address */ #define AP3216C_REG_ID 0x00 /* AP3216C ID register address */ #define AP3216C_REG_DATA 0x03 /* AP3216C data register address */ /* AP3216C I2C bus device */ static struct rt_i2c_bus_device *i2c_bus; /* Initialize AP3216C */ static rt_err_t ap3216c_init(void) { rt_uint8_t id; /* Check AP3216C ID */ rt_uint8_t reg = AP3216C_REG_ID; rt_err_t ret = rt_i2c_master_send(i2c_bus, AP3216C_I2C_ADDR, &reg, 1); if (ret != RT_EOK) { rt_kprintf("Failed to send ID register address!\n"); return RT_ERROR; } ret = rt_i2c_master_recv(i2c_bus, AP3216C_I2C_ADDR, &id, 1); if (ret != RT_EOK) { rt_kprintf("Failed to receive ID register value!\n"); return RT_ERROR; } if (id != 0x16) { rt_kprintf("Invalid AP3216C ID: 0x%02x!\n", id); return RT_ERROR; } /* Initialize AP3216C */ ret = ap3216c_init(i2c_bus); if (ret != RT_EOK) { rt_kprintf("Failed to initialize AP3216C!\n"); return RT_ERROR; } return RT_EOK; } /* AP3216C reading thread */ static void ap3216c_thread_entry(void *parameter) { rt_uint16_t ir, als, ps; while (1) { /* Read data from AP3216C */ rt_err_t ret = ap3216c_read_data(i2c_bus, &ir, &als, &ps); if (ret != RT_EOK) { rt_kprintf("Failed to read data from AP3216C!\n"); continue; } /* Print data */ rt_kprintf("IR: %d, ALS: %d, PS: %d\n", ir, als, ps); /* Delay for 1 second */ rt_thread_mdelay(1000); } } /* AP3216C demo entry */ int ap3216c_demo(void) { /* Open I2C bus device */ i2c_bus = (struct rt_i2c_bus_device *)rt_device_find("i2c1"); if (i2c_bus == RT_NULL) { rt_kprintf("Failed to find I2C bus device!\n"); return -RT_ERROR; } rt_err_t ret = rt_device_open((rt_device_t)i2c_bus, RT_DEVICE_FLAG_RDWR); if (ret != RT_EOK) { rt_kprintf("Failed to open I2C bus device!\n"); return -RT_ERROR; } /* Initialize AP3216C */ ret = ap3216c_init(); if (ret != RT_EOK) { rt_kprintf("Failed to initialize AP3216C!\n"); return -RT_ERROR; } /* Create AP3216C reading thread */ rt_thread_t thread = rt_thread_create("ap3216c", ap3216c_thread_entry, RT_NULL, 1024, 25, 10); if (thread == RT_NULL) { rt_kprintf("Failed to create AP3216C reading thread!\n"); return -RT_ERROR; } rt_thread_startup(thread); return RT_EOK; } ``` 该代码首先定义了AP3216C的I2C地址和寄存器地址,然后通过ap3216c_init函数初始化AP3216C。接着,创建一个线程来读取AP3216C的数据,将读取到的数据打印出来,并延时1秒钟。 在ap3216c_demo函数中,首先找到I2C总线设备,然后打开该设备。接着,调用ap3216c_init函数初始化AP3216C,并创建一个线程来读取AP3216C的数据。 请注意,该代码仅供参考,实际使用时需要根据具体情况进行修改和适配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值