19黑币
本人用AT516电阻仪测量电阻,电阻仪说明书上采样速率7ms,140次/秒。
读取电阻仪数据时,向电阻仪发送一次"fetch"指令,电阻仪自动返回一次数据,具体实现有两种方法:
第一种,电阻仪有232接口,可通过232转USB线直连电脑,在电脑串口助手上定时发送指令、接收数据。此方法采样速率50ms-100ms,可达到要求。
第二种:通过232转TTL芯片接线到单片机(软串口),单片机通过软串口向电阻仪发指令,电阻仪返回数据,读取软串口数据通过串口发送到电脑。
代码如下 方法可行,我设想通过延时程序改变读取速度。比如本代码设置延时50ms,但是实际读取一次为1050ms,无论设置延时多少,实际都会增加1000ms。
我已尝试增加串口波特率,未果。
![11111.png](http://cdn-img.sm-tc.cn/?src=l4uLj8XQ0JzRys6XmpbRnJCS0JvQmZCNipLQzc%2FNzs%2FK0M%2FI0M3Oz8vMzZWHy52QmsiPhZiKyoqYlpTRj5GY&restype=3&from=derive&pi=&v=1)
本人为机械专业学生,没有做过单片机项目,时间紧张,也是第一次发贴求助,可能在阅读感受上给大家带来了不变,如有表述不清等问题,感谢大家批评指正,我会及时改正,谢谢大家帮助。
![](http://cdn-img.sm-tc.cn/?src=l4uLj8XQ0IiIiNHKzpealtGckJLQnZ2M0IyLnouWnNCWkp6YmtCckJKSkJHQjo6gnZaY0ZiWmQ%3D%3D&restype=3&from=derive&pi=&v=1)
读取电阻仪数据时,向电阻仪发送一次"fetch"指令,电阻仪自动返回一次数据,具体实现有两种方法:
第一种,电阻仪有232接口,可通过232转USB线直连电脑,在电脑串口助手上定时发送指令、接收数据。此方法采样速率50ms-100ms,可达到要求。
第二种:通过232转TTL芯片接线到单片机(软串口),单片机通过软串口向电阻仪发指令,电阻仪返回数据,读取软串口数据通过串口发送到电脑。
代码如下 方法可行,我设想通过延时程序改变读取速度。比如本代码设置延时50ms,但是实际读取一次为1050ms,无论设置延时多少,实际都会增加1000ms。
我已尝试增加串口波特率,未果。
本人为机械专业学生,没有做过单片机项目,时间紧张,也是第一次发贴求助,可能在阅读感受上给大家带来了不变,如有表述不清等问题,感谢大家批评指正,我会及时改正,谢谢大家帮助。
相关帖子
- • 网购arduino UNO开发板(坏板)修复过程
- • Arduino UNO+AS608指纹识别模块+oled显示屏,实现对指纹的添加、删除、验证
- • Arduino若干模块例程 OLED DHT11 HC-SR04 BH1750 MQ-2 joystick双轴 MPU6050 RFID
- • arduino软件问题求助文件打不开了突然这样了怎么找回原来的文件
- • 使用Arduino mega 2560R3编程控制12条RGB流水灯带是否可行?
- • 关于MATLAB控制Arduino
- • arduino的关于音律灯的源代码
- • esp32在arduino平台如何设置主频
- • 自己写的max6675驱动库 Arduino源程序
如果你的项目需要同步数据流,请参阅Paul Stoffregen的AltSoftSerial库。 AltSoftSerial克服了核心SoftwareSerial的许多其他问题,但是有其自身的局限性。 有关更多信息,请参考AltSoftSerial网站。
如果你的项目需要同步数据流,请参阅Paul Stoffregen的AltSoftSerial库。 AltSoftSerial克服了核心SoftwareSerial的许多其他问题,但是有其自身的局限性。 有关更多信息,请参考AltSoftSerial网站。 www点pjrc点com/teensy/td_libs_AltSoftSerial.html AltSoftSerial库 AltSoftSerial模拟一个附加的串行端口,使你可以与另一个串行设备进行通信。 AltSoftSerial能够在16 MHz AVR上运行高达31250波特,或者在96 MHz下的Teensy 3.2上运行高达400000波特。 当其他代码可能会延迟AltSoftSerial的中断响应时,建议使用较慢的波特率。 串口选项 HardwareSerial-最佳性能。 如果可用,请始终先使用此功能! Teensy和Teensy ++具有一个可用的HardwareSerial端口(不适用于上传或Arduino串行监视器)。 Arduino Mega具有3个额外的HardwareSerial端口。 Arduino Uno没有。 AltSoftSerial-可以同时发送和接收。 同时使用HardwareSerial和其他库时的干扰最小。 使用一个16位定时器(不适用于需要该定时器的任何库)并禁用某些PWM引脚。 对其他库的中断使用可能很敏感。 SoftwareSerial(以前称为“ NewSoftSerial”)-几乎在任何引脚上都可以有多个实例,但是一次只能激活1个。 不能同时发送和接收。 如果以较低的波特率使用,可能会干扰其他库或HardwareSerial。 对其他库的中断使用可能很敏感。 Old SoftwareSerial(Arduino 0023及更早版本中的SoftwareSerial)-性能很差。 AltSoftSerial和SoftwareSerial可用速度 一个常见的问题是这些库可以支持的最大波特率。两者都可以以大约1位的其他代码的中断延迟时间工作。因此,如果其他中断最多花费15 μs(例如某些库),则应该有57600的波特率。 如果没有其他库,则在Teensy或Arduino(已修复问题776)上,中断延迟约为3到4 μs。 115200波特是可能的。 但是,最大波特率通常不是最重要的问题。每个库对其他库都施加了中断延迟。 AltSoftSerial导致大约2-3 μs的延迟。 SoftwareSerial会导致其他库延迟10比特时间。以57600波特运行,这是174 μs!此延迟是AltSoftSerial和SoftwareSerial之间的主要区别。 要查看实际效果,您可以尝试Arduino 1.0中SoftwareSerial附带的示例。如果您在Arduino串行监视器中键入“晚安”,您将看到在4800波特处针脚3实际出现的是“ Goot”。字符“ dnigh”丢失了。原因是因为当SoftwareSerial在4800发送字母“ G”时,字母“ oodnigh”到达57600波特。 UART寄存器中仅保留“ oo”。其余的丢失是因为禁止中断时间太长了。 AltSoftSerial可以长时间不锁定中断,因此可以轻松处理此测试。 https://github.com/PaulStoffregen/AltSoftSerial
AltSoftSerial库
AltSoftSerial模拟一个附加的串行端口,使你可以与另一个串行设备进行通信。
AltSoftSerial能够在16 MHz AVR上运行高达31250波特,或者在96 MHz下的Teensy 3.2上运行高达400000波特。 当其他代码可能会延迟AltSoftSerial的中断响应时,建议使用较慢的波特率。
串口选项
AltSoftSerial和SoftwareSerial可用速度
一个常见的问题是这些库可以支持的最大波特率。两者都可以以大约1位的其他代码的中断延迟时间工作。因此,如果其他中断最多花费15 μs(例如某些库),则应该有57600的波特率。
如果没有其他库,则在Teensy或Arduino(已修复问题776)上,中断延迟约为3到4 μs。 115200波特是可能的。
但是,最大波特率通常不是最重要的问题。每个库对其他库都施加了中断延迟。 AltSoftSerial导致大约2-3 μs的延迟。 SoftwareSerial会导致其他库延迟10比特时间。以57600波特运行,这是174 μs!此延迟是AltSoftSerial和SoftwareSerial之间的主要区别。
要查看实际效果,您可以尝试Arduino 1.0中SoftwareSerial附带的示例。如果您在Arduino串行监视器中键入“晚安”,您将看到在4800波特处针脚3实际出现的是“ Goot”。字符“ dnigh”丢失了。原因是因为当SoftwareSerial在4800发送字母“ G”时,字母“ oodnigh”到达57600波特。 UART寄存器中仅保留“ oo”。其余的丢失是因为禁止中断时间太长了。 AltSoftSerial可以长时间不锁定中断,因此可以轻松处理此测试。
https://github.com/PaulStoffregen/AltSoftSerial
NeoSWSerial
波特率9600、19200和38400的SoftwareSerial的高效替代品。同时进行RX和TX,不需要额外的TIMER,在RX期间不禁用中断
如果你的项目需要同步数据流,请参阅Paul Stoffregen的AltSoftSerial库。 AltSoftSerial克服了核心SoftwareSerial的许多其他问题,但是有其自身的局限性。 有关更多信息,请参考AltSoftSerial网站。 www点pjrc点com/teensy/td_libs_AltSoftSerial.html AltSoftSerial库 AltSoftSerial模拟一个附加的串行端口,使你可以与另一个串行设备进行通信。 AltSoftSerial能够在16 MHz AVR上运行高达31250波特,或者在96 MHz下的Teensy 3.2上运行高达400000波特。 当其他代码可能会延迟AltSoftSerial的中断响应时,建议使用较慢的波特率。 串口选项 HardwareSerial-最佳性能。 如果可用,请始终先使用此功能! Teensy和Teensy ++具有一个可用的HardwareSerial端口(不适用于上传或Arduino串行监视器)。 Arduino Mega具有3个额外的HardwareSerial端口。 Arduino Uno没有。 AltSoftSerial-可以同时发送和接收。 同时使用HardwareSerial和其他库时的干扰最小。 使用一个16位定时器(不适用于需要该定时器的任何库)并禁用某些PWM引脚。 对其他库的中断使用可能很敏感。 SoftwareSerial(以前称为“ NewSoftSerial”)-几乎在任何引脚上都可以有多个实例,但是一次只能激活1个。 不能同时发送和接收。 如果以较低的波特率使用,可能会干扰其他库或HardwareSerial。 对其他库的中断使用可能很敏感。 Old SoftwareSerial(Arduino 0023及更早版本中的SoftwareSerial)-性能很差。 AltSoftSerial和SoftwareSerial可用速度 一个常见的问题是这些库可以支持的最大波特率。两者都可以以大约1位的其他代码的中断延迟时间工作。因此,如果其他中断最多花费15 μs(例如某些库),则应该有57600的波特率。 如果没有其他库,则在Teensy或Arduino(已修复问题776)上,中断延迟约为3到4 μs。 115200波特是可能的。 但是,最大波特率通常不是最重要的问题。每个库对其他库都施加了中断延迟。 AltSoftSerial导致大约2-3 μs的延迟。 SoftwareSerial会导致其他库延迟10比特时间。以57600波特运行,这是174 μs!此延迟是AltSoftSerial和SoftwareSerial之间的主要区别。 要查看实际效果,您可以尝试Arduino 1.0中SoftwareSerial附带的示例。如果您在Arduino串行监视器中键入“晚安”,您将看到在4800波特处针脚3实际出现的是“ Goot”。字符“ dnigh”丢失了。原因是因为当SoftwareSerial在4800发送字母“ G”时,字母“ oodnigh”到达57600波特。 UART寄存器中仅保留“ oo”。其余的丢失是因为禁止中断时间太长了。 AltSoftSerial可以长时间不锁定中断,因此可以轻松处理此测试。 https://github.com/PaulStoffregen/AltSoftSerial
AltSoftSerial库
AltSoftSerial模拟一个附加的串行端口,使你可以与另一个串行设备进行通信。
AltSoftSerial能够在16 MHz AVR上运行高达31250波特,或者在96 MHz下的Teensy 3.2上运行高达400000波特。 当其他代码可能会延迟AltSoftSerial的中断响应时,建议使用较慢的波特率。
串口选项
- HardwareSerial-最佳性能。 如果可用,请始终先使用此功能! Teensy和Teensy ++具有一个可用的HardwareSerial端口(不适用于上传或Arduino串行监视器)。 Arduino Mega具有3个额外的HardwareSerial端口。 Arduino Uno没有。
- AltSoftSerial-可以同时发送和接收。 同时使用HardwareSerial和其他库时的干扰最小。 使用一个16位定时器(不适用于需要该定时器的任何库)并禁用某些PWM引脚。 对其他库的中断使用可能很敏感。
- SoftwareSerial(以前称为“ NewSoftSerial”)-几乎在任何引脚上都可以有多个实例,但是一次只能激活1个。 不能同时发送和接收。 如果以较低的波特率使用,可能会干扰其他库或HardwareSerial。 对其他库的中断使用可能很敏感。
- Old SoftwareSerial(Arduino 0023及更早版本中的SoftwareSerial)-性能很差。
AltSoftSerial和SoftwareSerial可用速度
一个常见的问题是这些库可以支持的最大波特率。两者都可以以大约1位的其他代码的中断延迟时间工作。因此,如果其他中断最多花费15 μs(例如某些库),则应该有57600的波特率。
如果没有其他库,则在Teensy或Arduino(已修复问题776)上,中断延迟约为3到4 μs。 115200波特是可能的。
但是,最大波特率通常不是最重要的问题。每个库对其他库都施加了中断延迟。 AltSoftSerial导致大约2-3 μs的延迟。 SoftwareSerial会导致其他库延迟10比特时间。以57600波特运行,这是174 μs!此延迟是AltSoftSerial和SoftwareSerial之间的主要区别。
要查看实际效果,您可以尝试Arduino 1.0中SoftwareSerial附带的示例。如果您在Arduino串行监视器中键入“晚安”,您将看到在4800波特处针脚3实际出现的是“ Goot”。字符“ dnigh”丢失了。原因是因为当SoftwareSerial在4800发送字母“ G”时,字母“ oodnigh”到达57600波特。 UART寄存器中仅保留“ oo”。其余的丢失是因为禁止中断时间太长了。 AltSoftSerial可以长时间不锁定中断,因此可以轻松处理此测试。
https://github.com/PaulStoffregen/AltSoftSerial
NeoSWSerial
波特率9600、19200和38400的SoftwareSerial的高效替代品。同时进行RX和TX,不需要额外的TIMER,在RX期间不禁用中断