小编dso*_*ano的帖子

在Windows平台上控制C中串口的DTR和RTS引脚

如何在Windows平台上和上面控制串口的DTR和RTS引脚?我希望它通过提升或降低其电压进行bitbanged或操作.

c windows serial-port

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

atmega32 中 UBRRH 和 UBRRL 寄存器的作用是什么?

我在网上找到了这部分代码,关于如何在atmega32上初始化USART。它适用于我的应用程序,但我想更好地理解它。

void USART_initial (void){
#define BAUD 9600 // We set the desired baud rate( here we set it at 9600bps)
#include <util/setbaud.h>  // 
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
#if USE_2X
UCSRA |= (1 << U2X);
#else
UCSRA &= ~(1 << U2X);
#endif

UCSRB = (1<<RXEN)|(1<<TXEN); // Enable transmitter/receiver.
UCSRC = (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); // Character size : 8 bit
Run Code Online (Sandbox Code Playgroud)

我的问题是 UBRRH 和 UBRRL 寄存器的确切用途是什么,为什么我需要使用它们?

非常感谢您提前

atmega serial-port cpu-registers usart

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

串行端口上的TCP/IP

我正在尝试通过系统的一个串行端口设置网络接口.

我正在使用beaglebone和Xbee-wifi模块.基本上我正在尝试使用TCP/IP protocole在serialport bu上传送2个beaglebone.

我需要通过ssh,telnet或默认的Web端口80连接到beaglebone.所以我不需要在串行接口上​​使用单个端口.我需要一个在serialport上运行的newtork intarface.

反正有没有这样做?

硬件:beaglebone black os:angstrom

ip serial-port

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

在python中从串行读取数据

我得到了返回 NMEA 数据的 GPS 模块。当我尝试使用以下代码打印它返回的所有数据时,我得到了这个.

while True:
try:
    rcv = port.read()
    print rcv
Run Code Online (Sandbox Code Playgroud)

然后,我进行了一些修改,可以更清晰地读取 NMEA 数据。它看起来像这样:

port = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=10.0)

line = []
print("connected to: " + port.portstr)

while True:
    try:
        rcv = port.read()
    except:
        rcv = ''


    line.append(rcv)

    if rcv == '\n':
        line = "".join(line)        
        print line
        line = []
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

$GPGGA,183345.000,5023.3424,N,01857.3817,E,1,7,1.25,313.3,M,42.1,M,,*53

$GPGSA,A,3,09,26,28,08,15,18,17,,,,,,1.52,1.25,0.88*06

$ GPRMC,183345.000,A,5023.3424,N,01857.3817,E,0.40,55.07,050214,,,A*54

$GPVTG,55.07,T,,M,0.40,N,0.74,K,A*0D

$GPGGA,183346.000,5023.3423,N,01857.3817,E,1,7,1.25,313.3,M,42.1,M,,*57

$GPGSA,A,3,09,26,28,08,15,18,17,,,,,,1.52,1.25,0.88*06

问题是有时它会遗漏一些逗号或其他数据,并且 NMEA 解析器读取错误。有没有更好更干净的方法来通过串行读取整个 NMEA 帧?

python gps nmea serial-port

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

为什么0x7E通常用作通信协议中的起始分隔符?

我期待通过简单的通信在2个设备之间实现串行通信.

似乎HDLC和xBee中使用的协议使用0x7E作为起始分隔符.

有什么特别的原因,或者我可以使用任何角色作为替代.

serial-port serial-communication xbee

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

使用 Python 的 Pyserial 将字符发送到 Arduino 串行端口

我已经将 Arduino 设置为在收到“S”字节时发送数据。这适用于 Arduino 串行监视器。不过,我正在 Python 上绘制数据,使用 Pyserial 联系串行端口。这是我的 Arduino 草图,以明确我的意思:

#include <eHealth.h>


unsigned long time;
unsigned long interval = 8;
byte serialByte;

// The setup routine runs once when you press reset:
void setup() {
  Serial.begin(9600);  
}

// The loop routine runs over and over again forever:
void loop() {
  if(Serial.available()>0){
    serialByte = Serial.read();
    if(serialByte == 'S'){  
      while(1){
        float ECG = eHealth.getECG();
        time = time + interval;
        Serial.print(time);
        Serial.print(" ");
        Serial.print(ECG, 3); 
        Serial.println("");

        if(Serial.available()>0){
          serialByte = Serial.read();
          if (serialByte …
Run Code Online (Sandbox Code Playgroud)

python serialization serial-port matplotlib

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

在bash中将十六进制字节发送到串行

我能够将hec字节发送到串口

stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo
echo -en '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从文件循环读取测试中执行此操作时,它不想工作

#!/bin/bash
stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo
while read line
do
    name=$line
    echo -en $name | tr -d ' ' > /dev/ttyUSB0
    sleep 0.04
done < $1
Run Code Online (Sandbox Code Playgroud)

我像这样调用脚本

./sendData.sh file.txt
Run Code Online (Sandbox Code Playgroud)

file.txt有一些像这样的简单内容

试试1

\\ xFF\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00
Run Code Online (Sandbox Code Playgroud)

试试2

\xFF\xF2\x00\xFF\xF2\x00\xFF\xF2\x00\xFF\xF2\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF
Run Code Online (Sandbox Code Playgroud)

有人能指出我缺少什么.

bash command-line serial-port serial-communication

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

传递DBI-> IN子句的执行值时出现perl错误

我有一个查询来计算基于文档的点的某个半径范围内的对象:http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/

它工作得非常好但是我只想搜索那些特定类型的对象,这导致了一个问题;

代码如下所示:

my $sql = "SELECT *
 FROM (
 SELECT b.*, pr.postcode, pr.prize, pr.title, pr.collection, pr.redeemed, pr.delivery, pr.archived, bt.category,
        p.radius,
        p.distance_unit
                 * DEGREES(ACOS(COS(RADIANS(p.latpoint))
                 * COS(RADIANS(b.lat))
                 * COS(RADIANS(p.longpoint - b.lng))
                 + SIN(RADIANS(p.latpoint))
                 * SIN(RADIANS(b.lat)))) AS distance
  FROM bubbles AS b, bubble_prizes AS pr, bubble_types AS bt
  JOIN (   /* these are the query parameters */
        SELECT  ?  AS latpoint, ? AS longpoint,
                ? AS radius,      ? AS distance_unit
    ) AS p
  WHERE b.lat
     BETWEEN p.latpoint  - (p.radius …
Run Code Online (Sandbox Code Playgroud)

perl dbi

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

C#.NET串行端口连接,无法读取或写入

我正在将C#和.NET 4.5与Visual Studio 2012编译器/ IDE一起使用,以打开串行端口并与之交互。我的代码旨在连接到US Digital的QSB正交至USB转换器。

这是我用来打开端口并连接的代码。

this.Port = new SerialPort();

this.Port.BaudRate = 230400;
this.Port.PortName = "COM9";
this.Port.Parity = Parity.None;
this.Port.Handshake = Handshake.None;
this.Port.DataBits = 8;
this.Port.StopBits = StopBits.One;

this.Port.Open();
Run Code Online (Sandbox Code Playgroud)

在this.Port.Open()之后立即设置断点,使我可以验证串行端口是否确实已连接。在另一部分代码中,响应于按钮按下而调用以下内容:

this.Port.WriteLine("W168");
Run Code Online (Sandbox Code Playgroud)

该命令*应该使我的硬件旋转电动机,实际上,如果我使用Putty或使用我编写的Python脚本(两者使用与C#代码完全相同的设置)发送该命令,则它确实会旋转。然而什么也没发生。我可以在Putty或Python中打开端口,并以预期的结果执行命令,然后运行C#代码,但没有任何反应。

我是否缺少某些特定于C#的东西来阻止其工作?

对于它的价值,这是我可以使用的Python代码:

ser = serial.Serial("COM9", 230400, timeout=1)
ser.write(b"W168\n")
Run Code Online (Sandbox Code Playgroud)

链接到pySerial文档:http ://pyserial.sourceforge.net/pyserial_api.html#classes

C#代码中提及但上述python调用中未提及的字段的默认值为:

  • 字节大小= 8
  • 奇偶校验=无
  • 停止位= 1
  • xonxoff =假
  • rtscts =假
  • dsrdtr =假

.net c# python serial-port

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

我可以访问从Delphi CreateProcess命令返回的字符串吗?

我正在使用Win32 CreateProcess函数来执行对外部可执行文件的调用.可执行文件返回一个字符串

有没有办法在调用可执行文件后捕获并查询返回的字符串?如果不这样做,我可能必须将字符串写入可执行文件中的文件,并在调用完成后在调用程序中读取该字符串.这看起来很蹩脚.

delphi string createprocess delphi-5

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