小编dso*_*ano的帖子

如何在Arduino上通过串口保持传入的字节?

我有以下Arduino代码.

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    if(Serial.available() > 0)
    {
        int b=Serial.read();
        Serial.println(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我打开串行监视器并输入00000001,我得到输出

48

48

48

48

48

48

48

49
Run Code Online (Sandbox Code Playgroud)

好吧,首先为什么48(和最后一行49),其次为什么这么多行?

我期待获得'1'的简单输出.

如果我将线路更改Serial.println(b);Serial.println(00000001,DEC);,我会得到我期望的(即'1').但是,如果我将线路更改为Serial.println(b,DEC);,我会得到与之前相同的奇怪输出.

serial-port arduino

3
推荐指数
1
解决办法
3465
查看次数

未定义的变量:SerialException

我正在使用pySerial库从Arduino获取Python脚本日志数据.我正在尝试处理SerialException,当脚本无法连接到您提供的端口时,Eclipse会说"Undefined variable:SerialException".有什么我忘了导入的东西吗?

码:

try:
    ser = serial.Serial(port, 9600)
    connected = 1
except SerialException:
    print "No connection to the device could be established"
Run Code Online (Sandbox Code Playgroud)

python exception-handling serial-port exception pyserial

3
推荐指数
1
解决办法
1万
查看次数

如何在Python中将整数的两个字节转换回整数?

我目前正在使用一个Arduino整数(int)通过串行(使用pySerial)输出到我正在编写的Python脚本,Arduino以便与X-Plane飞行模拟程序进行通信.

我设法将原始文件分成两个字节,以便我可以将它发送到脚本,但是我在重建原始整数时遇到了一些麻烦.

我尝试使用基本的按位运算符(<<,>>等),就像我在类似C++的程序中所做的那样,但它似乎没有用.

我怀疑它与数据类型有关.我可能在相同的操作中使用带有字节的整数,但我无法确定每个变量的类型,因为你并不真正在Python中声明变量,据我所知(我对Python很新) .

self.pot=self.myline[2]<<8
self.pot|=self.myline[3]
Run Code Online (Sandbox Code Playgroud)

python byte serial-port arduino

3
推荐指数
2
解决办法
1万
查看次数

如何重启窗口服务

我想重新启动名为"Spooler"的窗口服务我做了以下代码,但没有运气,任何机构都知道出现了什么问题?代码是

using System.ServiceProcess;

ServiceController service = new ServiceController("Spooler");

if ((service.Status.Equals(ServiceControllerStatus.Stopped)) ||
    (service.Status.Equals(ServiceControllerStatus.StopPending)))
{
    service.Start();
}
else
{
    service.Stop();
    service.Start();
}
Run Code Online (Sandbox Code Playgroud)

例外是

"System.InvalidOperationException:无法在计算机上启动服务假脱机程序.".---> System.ComponentModel.Win32Exception:服务实例已在运行

---内部异常堆栈跟踪结束---

在System.ServiceProcess.ServiceController.Start(String [] args)

在System.ServiceProcess.ServiceController.Start()

at servicerestart.Form1.button1_Click(Object sender,EventArgs e)在D:\ samplecodes\servicerestart\servicerestart\Form1.cs:第33行"

.net c# windows-services visual-studio-2010 winforms

3
推荐指数
1
解决办法
1万
查看次数

Linux - 与C的多串口通信

我有一个带有多个串口的设备,我用嵌入式linux编程,我想同时和异步地通过这两个端口进行通信.

我知道如何写入一个串口,如:

bytes_sent = write( fd, &(string[i]), 1 );
Run Code Online (Sandbox Code Playgroud)

但这只是一个串口

使用termios结构和c_cflags来区分端口?正如你所看到的那样有点模糊,我只是潜入水中并且用这种方式弄湿了,任何一般帮助指向我的方向依旧都会有所帮助.

c serial-port

3
推荐指数
1
解决办法
2047
查看次数

如何以编程方式实现生根?

我最近试图让自己进入更多的Android开发阶段,并且我一直很好奇如何在引擎盖下完成生根.理想情况下,我想开发自己的东西,根据手机,即使它现在只是一部手机.

我根植了我所拥有的所有Android手机,并且很好地了解了它的工作原理以及该怎么做.我也非常熟悉Linux及其背后的大多数概念.我一直无法找到的是如何创建像SuperOneClick或Galaxy Nexus Toolkit这样的工具,以及它们在底层做什么来为您提供root访问权限.

在编程级别实际需要做什么才能获得root访问权限?我如何制作自己的应用程序/包来执行此操作?这只能通过使用漏洞来获得吗?

android

3
推荐指数
1
解决办法
6025
查看次数

通过Bash打开与Arduino的串行连接

我已经设置了我的Arduino,所以当我通过串行监视器发送"0"时,步进电机会转动给定量.

我想将它包含在一个bash脚本中,但是当arduino串口监视器打开并echo 0 > /dev/tty.usbserial641以bash 进入时,我只能使用它.我认为这是因为串口监视器正在为我打开连接.

在我用bash打开连接的努力中(没有打开串行监视器)我尝试了所有方式,stty -f /dev/tty.usbserial641并尝试使用10uF电容将复位连接到地.

可以帮助我在不使用arduino串口监视器的情况下打开bash连接吗?

系统:Arduino Uno rev3 OS X 10.8.4

非常感谢,hcaw

bash shell serial-port arduino

3
推荐指数
1
解决办法
7592
查看次数

RS-485 串口波特率 性能效率

我正在使用 Python 开发一个应用程序,该应用程序通过 RS-485 两线、半双工与设备进行通信。我的应用程序已经足够运行,可以执行一些性能测试。我使用的是带有 USB 至 485 转换器的笔记本电脑。通讯设置为9600,N,8,1。

对于速度测试,我发送一条总长度为 10 个字节的消息,包括校验字节。然后我等待13个字节的回复。我在收到回复时对其进行解码。当回复完成时。然后我发送下一条消息。我尽可能快地重复这句话 100 次。这需要 2.895 秒。

据此,我计算出我正在发送/接收 23 字节 * 100 次迭代/2.895 秒 = 794 字节/秒。

如果我理解正确的话,9600 N-8-1的串口通信有1个起始位,8个数据位和1个停止位。这意味着它有 2 位开销。所以实际理论传输速率为(9600位/秒)*(8个数据位/10个传输位)*(1字节/8位)=960字节/秒。

我的程序以 794 字节/秒的组合速率发送/接收,而可能的 960 字节/秒 = 82.7%。

我应该能够实现接近 100% 的 960 字节/秒吗?或者说这么多的带宽没有被利用是很常见的吗?

python performance serial-port baud-rate

3
推荐指数
1
解决办法
2383
查看次数

XMODEM for python

我正在编写一个程序,需要使用XMODEM从传感器设备传输数据.我想避免编写我自己的XMODEM代码,所以我想知道是否有人知道是否有可用的python XMODEM模块?

python serial-port file-transfer xmodem

2
推荐指数
1
解决办法
8362
查看次数

CANopen PDO使用串行端口

我想了解CANopen协议.

目前,我没有任何CAN硬件或CANopen堆栈可供试验.

我想知道如何编写Java程序来简单地解释在RS-232端口接收的CANopen消息.

  • 是否有作为串口安装的CAN接口?
  • 我能写一个程序来处理CANopen消息吗?我只希望能够接收和解释消息.是否像为输入流创建缓冲区那样简单,然后根据SOF和EOF将传输分解为单独的消息?我怎么知道什么是SOF/EOF,因为它只有1位长?
  • 为什么CAN节点的PDO数量有限制?
  • 如何处理PDO以识别发送它的节点以及数据类型和值?PDO是标准CAN框架吗?

java serial-port can-bus canopen

2
推荐指数
1
解决办法
2694
查看次数