ase operand of '->' has non-pointer type 'Servo'
时间: 2024-01-25 22:02:24 浏览: 128
这个错误提示是因为你在使用 `->` 运算符时,操作数的类型不是指针类型。通常情况下,`->` 运算符用于通过指针访问对象的成员。
根据错误提示,`Servo0` 的类型不是指针类型,而是 `Servo` 类型。所以你应该使用点号 `.` 来访问对象的成员,而不是箭头运算符 `->`。请修改代码如下:
```cpp
Servo0.writeServo(Servo0.readDegrees() + 5);
```
这样就可以正确地调用 `Servo0` 对象的成员函数和成员变量了。
相关问题
Determining the location of the ModelSim executable... Using: D:/quartus/modelsim_ase/win32aloem To specify a ModelSim executable directory, select: Tools -> Options -> EDA Tool Options Note: if both ModelSim-Altera and ModelSim executables are available, ModelSim-Altera will be used. **** Generating the ModelSim Testbench **** quartus_eda --gen_testbench --check_outputs=on --tool=modelsim_oem --format=verilog DHT11 -c DHT11 --vector_source=D:/Desktop/DHT11/Waveform.vwf --testbench_file=D:/Desktop/DHT11/simulation/qsim/Waveform.vwf.vt是什么意思
这是一个 Quartus Prime 软件运行时的输出信息。它正在生成 ModelSim 的测试台。其中 D:/quartus/modelsim_ase/win32aloem 是 ModelSim 的可执行文件路径,--gen_testbench 表示生成测试台,--check_outputs=on 表示检查输出,--tool=modelsim_oem 表示使用 ModelSim OEM 版本,--format=verilog 表示使用 Verilog 格式,DHT11 是要生成测试台的设计文件名,-c DHT11 表示使用默认的时钟周期,--vector_source=D:/Desktop/DHT11/Waveform.vwf 表示指定波形文件路径,--testbench_file=D:/Desktop/DHT11/simulation/qsim/Waveform.vwf.vt 表示指定测试台文件路径。
使用mebedtls库里的mebtls_cipher_crypt函数实现ase-256-cbc的加密
您可以使用mbedtls库中的`mbedtls_cipher_crypt`函数来实现AES-256-CBC的加密。以下是一个示例代码,展示了如何使用该函数进行加密操作:
```c
#include "mbedtls/aes.h"
#include "mbedtls/cipher.h"
int main()
{
// 初始化 mbedtls 的上下文
mbedtls_aes_context aes_ctx;
mbedtls_aes_init(&aes_ctx);
unsigned char key[32] = {0}; // AES-256 的密钥长度为 32 字节
unsigned char iv[16] = {0}; // 初始化向量长度为 16 字节
unsigned char input[16] = "plaintext"; // 待加密的明文
unsigned char output[16] = {0}; // 存储加密后的密文
// 设置加密算法和模式
mbedtls_cipher_context_t cipher_ctx;
mbedtls_cipher_init(&cipher_ctx);
mbedtls_cipher_setup(&cipher_ctx, mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_256_CBC));
// 设置密钥和初始化向量
mbedtls_cipher_setkey(&cipher_ctx, key, 256, MBEDTLS_ENCRYPT);
mbedtls_cipher_set_iv(&cipher_ctx, iv, 16);
// 执行加密操作
mbedtls_cipher_crypt(&cipher_ctx, iv, 16, input, output);
// 清理 mbedtls 的上下文
mbedtls_cipher_free(&cipher_ctx);
mbedtls_aes_free(&aes_ctx);
return 0;
}
```
请注意,以上代码只是一个示例,您需要根据实际情况进行适当的修改和完善。确保您正确初始化密钥、初始化向量以及提供正确的输入和输出缓冲区。
阅读全文