在C#应用程序中不发送串行数据
我有两个Arduinos,可以使用串行监视器通过串行端口交换消息. 如果我在双方使用串行显示器,则一切正常.如果我使用我的C#应用​​程序,什么也不会发生.我试图从串行监视器发送C#App,但不起作用. . // ... comPort1.Open(); // ... private void comPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(processData)); } private void processData(object sender, EventArgs e) { string inData = comPort1.ReadExisting(); msgBoxLog.AppendText(inData); } // ... private void sendButton_Click(ob
0 2024-04-14
编程技术问答社区
我如何以整数形式获得NVIDIA核心温度?
我正在参加Arduino MicroController类,并且正在研究我的最终项目:根据情况温度工作的自动化计算机冷却系统. 我无法使用以下资源来获得我的NVIDIA GPU核心温度:此msdn链接或此nvidia链接.如何获得GPU温度的值? 我在C#中的知识是基本的,我无法从该手册或MSDN中的代码示例中从尾巴上划分. 解决方案 在搜索如何做到这一点之后,我会继续回答自己的问题,我找到了一种获取数据的方法. 从他们的开源链接中使用openhardwaremonitor.dll,我能够得到我需要的东西. 这是我在Windows C#应用中使用的代码(这可能不是最佳方法,但可以完成工作. 希望有人能找到这个有用的: using OpenHardwareMonitor.Hardware; . . . public partial class mainWindow : Form { Computer myComputer;
0 2024-04-14
编程技术问答社区
如何自动检测Arduino的COM端口?
我正在使用firmata库的arduino与C#应用程序进行通信,并且我想消除com端口配置组件,因为它可以从机器上更改为机器... 有可能: 列举系统中的COM端口列表? (在我的谷歌搜索中,我看到了一些相当丑陋的Win32 API代码,希望现在可能有一个更干净的版本) 自动检测哪个com端口已连接到arduino? 解决方案 这个小的代码对此非常有效(返回com端口字符串,即如果检测到arduino,则" com12"): private string AutodetectArduinoPort() { ManagementScope connectionScope = new ManagementScope(); SelectQuery serialQuery = new SelectQuery("SELECT * FROM Win32_SerialPort"); M
0 2024-04-11
编程技术问答社区
什么是Arduino中的core.a(main.cpp.o)错误?
我在Arduino中弥补了我的代码,突然我得到了这个错误: core.a(main.cpp.o): In function `main': D:\Personal\Arduino\arduino-1.0.4-windows\arduino- 1.0.4\hardware\arduino\cores\arduino/main.cpp:11: undefined reference to `setup' D:\Personal\Arduino\arduino-1.0.4-windows\arduino-1.0.4\hardware\arduino\cores\arduino/main.cpp:14: undefined reference to `loop' 我不知道这意味着什么.这是我的代码: #ifndef dht_h #define dht_h #if ARDUINO #else #inc
4 2024-04-10
编程技术问答社区
分割一个以逗号为界的整数串
我的背景不在C中(它在真实的工作室中 - 类似于VB),我真的很努力地拆分一个逗号的字符串,因为我不习惯低级字符串处理. 我将字符串通过串行发送到Arduino.这些字符串是特定格式的命令.例如: @20,2000,5! @10,423,0! '@'是指示新命令和'!'的标题.是标记命令末尾的终止页脚. "@"之后的第一个整数是命令ID,其余整数是数据(数据传递的数量,因为数据可能在0-10个整数中). 我写了一个草图,该草图获取了命令(剥离了'@'and'!'),并在有命令处理时调用称为handleCommand()的函数.问题是,我真的不知道如何将此命令分开以处理它! 这是草图代码: String command; // a string to hold the incoming command boolean commandReceived = false; // whether the command has been received in f
2 2024-04-10
编程技术问答社区
Arduino:在命令 - 使用serial.read()读取序列输出的最后一行
我不断通过命令来获得GSM信号强度 我的代码复制了整个串行输出 请建议如何读取最新的序列输出(最后一行) 找到下面的输出,其中我需要将最后一行(21,0)的输出分配给变量"信号" 我的输出: AT OK AT+CREG? +CREG: 0,1 ok AT+CSQ +CSQ: 21,0 我的代码: byte gsmDriverPin[3] = { 3,4,5}; char signal[10]; char inChar; int index; char inData[200]; void setup() { //Init the driver pins for GSM function for(int i = 0 ; i
0 2024-04-10
编程技术问答社区
Arduino程序耗尽资源
我重置WiFi Shields固件,遵循 edit2 我仍然不知道问题可能在哪里.因此,我将我的.ino file 在这里. (已编译:25.052字节) 如果有人可以检查它是否在另一个环境上运行并进行报告,我会很高兴. 我用假值代替了传感器,因此您无需添加任何硬件.只需在草图上添加路由器SSID和密码即可. 如果您评论SD卡部分,您会发现它正在运行更多时间.但是总的来说,它不会改变.它的行为看起来像是用完任何资源,例如Udo Klein提到的SRAM. 只是检查我是否正确理解: 更少的代码会导致更多的免费闪存.但这不应该影响SRAM中的运行程序,不是吗? - >但是,如果对某些代码零件(例如SD卡)进行评论,为什么会有不同的行为? 如果我节省了很多变量,则降低了自由SRAM的量. (然后,它可以通过memoryfree.h lib->告诉我const〜6kb免费) 每次我从函数返回'时,都会减少必要堆栈内存大小,而本地定义的函数变量调用its
0 2024-04-10
编程技术问答社区
arduino和visual studio c++, 2路串行通信
我正在使用Arduino和Visual Studio C ++,并尝试构建双向实时串行通信. 我使用的是Win 10(在VMware Fusion中),32位系统,Visual Studio 2013,Arduino IDE 1.8.0和Arduino Board Uno. 我从 http://playground.arduino.ccc/interfacing/cpppwindowsfacte/A>是两个文件: serialClass.h 和 serial.cpp. )在我的主机中功能. 我想再运行几次,用户可以在控制台中输入输入,而Arduino将相应地生成输出.但是,当我添加时循环时,它无法正常工作. 下面是我的主要cpp :(随着评论行中的循环) int main() { Serial* port = new Serial("COM3"); if (port->IsConnected()) cout
0 2024-04-10
编程技术问答社区
读取串口的速度更快
我有一个计算机软件,该软件将RGB颜色代码使用USB发送到Arduino.当它们缓慢发送时,它可以正常工作,但是当它们每秒发出数十张时,它会吓坏了.我认为发生的是Arduino串行缓冲区填充得如此之快,以至于处理器无法按照我的阅读方式处理. #define INPUT_SIZE 11 void loop() { if(Serial.available()) { char input[INPUT_SIZE + 1]; byte size = Serial.readBytes(input, INPUT_SIZE); input[size] = 0; int channelNumber = 0; char* channel = strtok(input, " "); while(channel != 0) { color[channelNumber] = atoi(channel); channel =
0 2024-04-09
编程技术问答社区
在Arduino库中传递数组
我正在尝试编写一个读取5个变量的库,然后将它们通过串行端口发送到蓝牙回收器,我遇到了许多错误,我不确定从这里去哪里,我需要实现指针? 这是Arduino代码.... #include serialComms testing; void setup() { Serial.begin(9600); } char data[] = {1,2,3,4,5,6}; void loop() { for(int t = 0;t #include void serialComms::init() { // This is where the constructor w
0 2024-04-09
编程技术问答社区
将字节数组转换为整数的方法,无需循环?
(我已经看过这些问题(将字节转换为int/uint in c 和将字节阵列转换为int24 )比我想做的更复杂,所以我想我会问.) 我在Arduino/接线中进行一些LED矩阵编程.由于原因可能与这里无关,我有一个字节阵列代表LED行的"位状态",我用来缓冲其他操作的结果.要实际设置LED(我正在使用Maxim 7219芯片),我需要从字节数组中得出一个整数. 使用arduino/接线 bitwrite 方法,我的小剥离示例在下面有效,但是我想知道是否有一个C方法比循环更快. byte dog[8] = {0,0,1,1,1,1,1,0}; byte cat; for (int i = 0; i
2 2024-04-09
编程技术问答社区
在Arduino中使用拨动开关打开和关闭一个灯泡
我在这个领域的新手方面对我有帮助.我有Arduino代码,可以使用切换开关打开和关闭灯泡中的灯.它成功地运行并给出输出. 以下是代码: int buttonPinBulb = 11; int relay1 = 10; void setup() { pinMode(buttonPinBulb, INPUT_PULLUP); pinMode(relay1, OUTPUT); Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: int buttonBulb = digitalRead(buttonPinBulb); if(buttonBulb == HIGH){ digitalWrite(relay1, HIGH); } else { digitalWrite(relay1, LOW); } Serial
0 2024-04-09
编程技术问答社区
使用Arduino和SIM900的HTTPREAD丢失字符
我正在使用我的arduino使用SIM900模块,尽管它正在返回预期的正确数量的字符,但它丢失了字符.我在+sapbr = 1,1和at+httpinit上有错误,因此我不确定这是否是原因.我也不确定如何解决这些问题. AT+CGATT? +CGATT: 1 OK AT+CGATT=1 OK AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","mobile.o2.co.uk" OK AT+SAPBR=1,1 ERROR AT+HTTPINIT ERROR AT+HTTPPARA="URL","http://www.xxxxxxxxxxx.com/temp/" OK AT+HTTPACTION=0 OK +HTTPACTION:1,200,56 AT+HTTPREAD +HTTPREAD:56 {"type":"dOK 我的功能读取字符时读取字符: void whileAvailable() {
0 2024-04-09
编程技术问答社区
类似Arduino的Makefile有依赖性吗?
我目前正在尝试为 stm8微控制器使用目前,我正在为自动检测依赖项而苦苦挣扎.在Arduino中,用户仅包含相关标题,例如" #include lcd-lib",构建机制会自动检测依赖性并将各自的LIB连接起来.无需手动将其添加到IDE或makefile中. 我喜欢它的简单性,但是到目前为止,我在创建各自的makefile时惨败.基本上,这是makefile应该实现的目标: 扫描项目root中的 *.c文件是否为包含的标题.请注意,这些文件位于其他LIB文件夹中 添加所有随附的标头,(如果存在)相应的C文件到构建过程 要最大程度地减少编译时间和大小,必须在构建过程中跳过LIB文件夹中的未使用的C文件 我有信心可以完成以上所有事情 - 但不能在我的制作经验水平上进行...( ) 这是我想到的文件夹结构: ├── Library │ ├── Base │ │ ├── general STM8 sources and headers │ ├──
0 2024-04-09
编程技术问答社区
Arduino传感器10DOF MPU9255无法获取磁力计数据
我正在使用带有MPU9255和BMP180的10 DOF IMU来收集方向数据.当我为Arduino运行草图以测试IMU的功能时,它可以完美地从加速度计和陀螺仪元素中收集数据,但由于从未收到的磁力计请求数据.它可以成功地读取磁力计数据,但是除非我重新上传该程序,否则再也无法再读取它了.更具体地说,位且永远不会评估为true,因此程序无法进行,因为数据未从磁力计中"准备好".有可能的代码线是这样: do { I2Cread(MAG_ADDRESS,0x02,1,&ST1); } while (!(ST1&0x01)); ,但这是完整的代码,以防万一 #include #define MPU9250_ADDRESS 0x68 #define MAG_ADDRESS 0x0C #define GYRO_FULL_SCALE_250_DPS 0x00 #
0 2024-04-09
编程技术问答社区
如何打印Arduino串口中AT命令的响应?
我想打印对命令的响应.我正在命令发送,但我没有在Arduino串行端口中得到任何响应.它给出-1而不是确定. #include "SoftwareSerial.h" String ssid = "connectify-krish"; String password = "12345678"; String myword= ""; SoftwareSerial esp(10, 11); void setup() { Serial.begin(9600); esp.begin(9600); esp.write("AT"); Serial.println(esp.read()); } void loop() {} 解决方案 正如您未终止AT命令行所指出的那样,因此调制解调器永远不会响应. 确保您阅读V.250并了解AT命令和AT命令行之间的区别. ATI是一个命令,"ATI I I\r"是连续调用此命令的命令行.顺便说一句,请注意,在此示例中,您将仅获得其
2 2024-04-09
编程技术问答社区
Arduino:不能将union结构作为指针传递,但我可以用gcc编译器来传递
我试图将结构与Arduino一起使用,但无法通过函数调用传递结构指针.在使用GCC为我的计算机添加主函数和编译时,一切正常,但是使用Arduino IDE,我会遇到错误. 我尝试的代码是: typedef union { struct { unsigned unit :2; unsigned channel:2; unsigned status :1; unsigned group :1; unsigned remote :26; }; unsigned long data; } Signal; Signal signal; void testPassingStruct(Signal *variable) { variable->status = 1; } void setup() { signal.status = 1; tes
0 2024-04-09
编程技术问答社区
Arduino-struct超出了范围,为什么?
我在电动机程序中工作(我必须控制多个电动机,这就是为什么我使用结构的原因)以及我的Arduino Mega. 我不明白当我将电动机用作驱动器函数中的参数时,为什么电动机不在范围: typedef struct motor { int EN; /*some more ints*/ }MOTOR; MOTOR mot1; MOTOR mot2; /*this works with no compile error*/ int drive (MOTOR*) /*here i have compile error out of scope, neither with or without pointer*/ { return 1; } void setup() {} void loop() {} sketch_jul25a:2: error: 'MOTOR' was not declared in this scope sketch_jul25a:2: erro
0 2024-04-09
编程技术问答社区