2021.11.6,内容:缓冲区

本文探讨了高级流技术,如缓冲流、编码转换流和序列化流,它们如何增强基础IO流功能,提升数据处理效率。通过实例解析,揭示这些强大流的实战价值。

昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。

C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino: In function 'void setup()': C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:16:34: error: no matching function for call to 'arduino::esp32::spi::slave::Slave::begin(spi_host_device_t, const int&)' slave.begin(SPI2_HOST, CS_PIN); // 使用HSPI ^ In file included from C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:2: d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:233:10: note: candidate: 'bool arduino::esp32::spi::slave::Slave::begin(uint8_t)' bool begin(const uint8_t spi_bus = HSPI) ^~~~~ d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:233:10: note: candidate expects 1 argument, 2 provided d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:250:10: note: candidate: 'bool arduino::esp32::spi::slave::Slave::begin(uint8_t, int, int, int, int)' bool begin(uint8_t spi_bus, int sck, int miso, int mosi, int ss) ^~~~~ d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:250:10: note: candidate expects 5 arguments, 2 provided d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:266:10: note: candidate: 'bool arduino::esp32::spi::slave::Slave::begin(uint8_t, int, int, int, int, int, int)' bool begin(uint8_t spi_bus, int sck, int ss, int data0, int data1, int data2, int data3) ^~~~~ d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:266:10: note: candidate expects 7 arguments, 2 provided d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:288:10: note: candidate: 'bool arduino::esp32::spi::slave::Slave::begin(uint8_t, int, int, int, int, int, int, int, int, int, int)' bool begin(uint8_t spi_bus, int sck, int ss, int data0, int data1, int data2, int data3, int data4, int data5, int data6, int data7) ^~~~~ d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:288:10: note: candidate expects 11 arguments, 2 provided C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino: In function 'void loop()': C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:24:15: error: 'using ESP32SPISlave = class arduino::esp32::spi::slave::Slave' {aka 'class arduino::esp32::spi::slave::Slave'} has no member named 'available' if (slave.available()) { ^~~~~~~~~ C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:25:66: error: no matching function for call to 'arduino::esp32::spi::slave::Slave::wait(uint8_t [261], const uint32_t&)' size_t received_size = slave.wait(spi_buffer, BUFFER_SIZE); ^ In file included from C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:2: d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:399:25: note: candidate: 'std::vector<unsigned int> arduino::esp32::spi::slave::Slave::wait(uint32_t)' std::vector<size_t> wait(uint32_t timeout_ms = 0) ^~~~ d:\Arduino IDE\libraries\libraries\ESP32SPISlave/ESP32SPISlave.h:399:25: note: candidate expects 1 argument, 2 provided C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:58:47: error: no matching function for call to 'min(int, uint16_t&)' int display_count = min(10, block_size); ^ In file included from c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\algorithm:62, from C:\Users\hdhfg\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:172, from C:\Users\hdhfg\AppData\Local\Temp\arduino\sketches\9775FC6C6AD6729580772478E700C403\sketch\sketch_jun28b.ino.cpp:1: c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algo.h:3456:5: note: candidate: 'template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)' min(initializer_list<_Tp> __l, _Compare __comp) ^~~ c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algo.h:3456:5: note: template argument deduction/substitution failed: C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:58:47: note: mismatched types 'std::initializer_list<_Tp>' and 'int' int display_count = min(10, block_size); ^ In file included from c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\algorithm:62, from C:\Users\hdhfg\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:172, from C:\Users\hdhfg\AppData\Local\Temp\arduino\sketches\9775FC6C6AD6729580772478E700C403\sketch\sketch_jun28b.ino.cpp:1: c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algo.h:3450:5: note: candidate: 'template<class _Tp> _Tp std::min(std::initializer_list<_Tp>)' min(initializer_list<_Tp> __l) ^~~ c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algo.h:3450:5: note: template argument deduction/substitution failed: C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:58:47: note: mismatched types 'std::initializer_list<_Tp>' and 'int' int display_count = min(10, block_size); ^ In file included from c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\algorithm:61, from C:\Users\hdhfg\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:172, from C:\Users\hdhfg\AppData\Local\Temp\arduino\sketches\9775FC6C6AD6729580772478E700C403\sketch\sketch_jun28b.ino.cpp:1: c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algobase.h:243:5: note: candidate: 'template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)' min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algobase.h:243:5: note: template argument deduction/substitution failed: C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:58:47: note: deduced conflicting types for parameter 'const _Tp' ('int' and 'uint16_t' {aka 'short unsigned int'}) int display_count = min(10, block_size); ^ In file included from c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\algorithm:61, from C:\Users\hdhfg\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:172, from C:\Users\hdhfg\AppData\Local\Temp\arduino\sketches\9775FC6C6AD6729580772478E700C403\sketch\sketch_jun28b.ino.cpp:1: c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algobase.h:195:5: note: candidate: 'template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&)' min(const _Tp& __a, const _Tp& __b) ^~~ c:\users\hdhfg\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\stl_algobase.h:195:5: note: template argument deduction/substitution failed: C:\Users\hdhfg\AppData\Local\Temp\.arduinoIDE-unsaved2025528-21424-mrpq9p.55lhp\sketch_jun28b\sketch_jun28b.ino:58:47: note: deduced conflicting types for parameter 'const _Tp' ('int' and 'uint16_t' {aka 'short unsigned int'}) int display_count = min(10, block_size); ^ exit status 1 Compilation error: no matching function for call to 'arduino::esp32::spi::slave::Slave::begin(spi_host_device_t, const int&)' 出现问题,如何修改
06-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值