标签: uart

Atmel SAM4S Xplained UART

我有一个SAM4s Xplained,想要使用UART1,但无法找到示例或帮助.我尝试了自己,但它不起作用.

到目前为止,这是我的代码:

conf_uart.h

#include "asf.h" //uart.h etc. included here
#include <sam4s_xplained.h>

#define UART_SERIAL_BAUDRATE        9600
#define UART_SERIAL_CHANNEL_MODE   UART_MR_CHMODE_AUTOMATIC //UART_MR_CHMODE_NORMAL
#define UART_SERIAL_MCK            240000000UL //CHIP_FREQ_CPU_MAX (tired both!)
#define UART_SERIAL_MODE         UART_MR_PAR_NO

void uart_custom_init(void);
Run Code Online (Sandbox Code Playgroud)

conf_uart.c

#include "conf_uart.h"

uint8_t received_byte;

void uart_custom_init(void) {
    sysclk_init();

    const sam_uart_opt_t uart_console_settings = {
       UART_SERIAL_BAUDRATE,
       UART_SERIAL_CHANNEL_MODE,
       UART_SERIAL_MCK,
       UART_SERIAL_MODE
    };

    uart_init(UART1,&uart_console_settings);      //Init UART1

    uart_enable_rx(UART1);                     //Enable RX (receiving)
    uart_enable_tx(UART1);                     //Enable TX (transmitting)
    uart_enable(UART1);                     //Enable UART1

    uart_enable_interrupt(UART1,UART_IER_RXRDY);   //Interrupt reading ready
    NVIC_EnableIRQ(UART1_IRQn);

}

void UART1_Handler() {
   uint32_t dw_status = uart_get_status(UART1);

   if(dw_status & UART_SR_RXRDY) { …
Run Code Online (Sandbox Code Playgroud)

arm uart

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

PIC32 UART丢弃字节

问题

  • 外部源发送这四个字节 0x2A, 0x42, 0x78, 0x25
  • PIC32 UART不生成int
  • 外部源再发送一个字节
  • 的PIC32 UART 然后生成一个int
  • 在该int中,仅0x25出现上一次传输的字节
  • 即,前三个消失
  • 偶尔(可能是5%的时间)UART确实正确地产生了所有4个字节

[周五晚间调试结果]

我们写了另一个echo例程; 它只是读取它得到的东西并将其写回.

我们在发布模式下构建它(在另一个的建议下)

我写了一个例程,发送了25次相同的号码,看看我得到了什么.

之后,我将值加入并发送25次,然后循环.

结果将附加在此消息的末尾.

我没有得到第一个空字节.基于各种因素,我现在不会担心这一点.

接下来的五轮比赛,我完全恢复了一切

我将尝试包含所有相关的源代码,希望它不是一个文本墙.如果需要更多代码来理解这一点,请询问.

这是有问题的UART的初始化代码.我可以包括

  //*****************************************************************//
  void initUART1(void)   // UART1 for MCU1/2 communication
  {
   U1MODE=0;                     //// Mode Register, Manual DS61168D page 180
   U1MODEbits.FRZ=0;
   U1MODEbits.SIDL=0;
   U1MODEbits.IREN=0;
   U1MODEbits.RTSMD=0;

   U1MODEbits.UEN=0b00;           //// Just TX/RX, No CTS/RTS

   U1MODEbits.WAKE=1;
   U1MODEbits.LPBACK=0;
   U1MODEbits.ABAUD=0;
   U1MODEbits.RXINV=0;
   U1MODEbits.BRGH=1;
   U1MODEbits.PDSEL=0b00;
   U1MODEbits.STSEL=0;

   U1STA=0;
   U1STAbits.ADM_EN=0;
   U1STAbits.UTXINV=0;
   U1STAbits.URXEN=1;
   U1STAbits.UTXBRK=0;
   U1STAbits.UTXEN=1;
   U1STAbits.ADDEN=0;
   U1STAbits.OERR=0;     
                                 //// Status register, Manual DS61168D page 183

   //U1BRG=21;                    //// …
Run Code Online (Sandbox Code Playgroud)

embedded pic uart

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

UART控制器还是RS232控制器?UART是一般词吗?

我有一个关于UART控制器的问题.

UART控制器是通用名吗?

我的意思是,如果我们使用RS-232协议,我们应该命名这个UART控制器,RS-232控制器,如果我们使用RS-485作为协议,我们应该称之为UART控制器,RS-485控制器等等?

我注意到我们通常说网络控制器(协议:以太网,令牌环,ATM,......),如果实现的协议是以太网,我们说以太网控制器.UART控制器和网络控制器之间的正确比较是否都是通用名称?

非常感谢您的澄清

serial-port uart

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

为什么只有在输入后才能通过串行连接接收字符?

我有一个简单的PC到板连接使用串口(9600,没有奇偶校验,8位,没有hw流)我在PC上打开简单的终端*与teraterm)并在teraterm和board中输入密钥,我只是做

 cat /dev/ttyO5
Run Code Online (Sandbox Code Playgroud)

我在范围内看到了按下的字符,但是只有在teraterm中按"enter"后才能看到控制台中的字符(好像它们存储在Linux驱动程序中的某些FIFO中,只能输入触发器)

  1. 为什么只有在按下回车键时才能在Linux驱动程序中收到字符?
  2. 有没有办法在不按回车键的情况下接收字符?(我们使用ascii的一些协议,因此将它作为虚拟发送是没有意义的)

谢谢你的建议,冉

linux serial-port uart

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

uart_register_driver和platform_driver_register之间的区别?

我正在研究内核代码中的UART驱动程序,想知道,谁首先进入图片,device_register()或者driver_register()打电话?

为了区别他们,请遵循.

在UART探测中,我们打电话

uart_register_driver(struct uart_driver *drv)
Run Code Online (Sandbox Code Playgroud)

成功注册后,

uart_add_one_port(struct uart_driver *drv, struct uart_port *uport)
Run Code Online (Sandbox Code Playgroud)

请详细解释一下.

kernel serial-port linux-device-driver linux-kernel uart

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

Android Things:连接到串行调试控制台

我一直在尝试使用来自Linux ( Ubuntu ) 机器的USBTTL电缆连接带有Android ThingsRaspberry Pi 3串行控制台。尽管我按照文档连接了电缆,但在执行命令时我得到的只是以下内容minicom

在此处输入图片说明

没有机会在任何字符输入。所以我既看不到任何内核消息,也看不到设备的外壳。

我错过了什么?

console uart android-things

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

IOError:[Errno 2]没有这样的文件或目录(当它确实存在时)Python

我正在通过python中的uart处理文件的传输文件夹.下面你看到简单的函数,但是有一个问题,因为我得到错误,如标题:IOError:[Errno 2]没有这样的文件或目录:'1.jpg'其中1.jpg是测试文件夹中的文件之一.所以这很奇怪,因为程序知道它不存在的文件名?我做错了什么?

def send2():
    path = '/home/pi/Downloads/test/'
    arr = os.listdir(path)
    for x in arr:
        with open(x, 'rb') as fh:
            while True:
                # send in 1024byte parts
                chunk = fh.read(1024)
                if not chunk: break
                ser.write(chunk)
Run Code Online (Sandbox Code Playgroud)

python errno file-transfer uart

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

device_register 和 driver_register 的区别

我正在写一个UART驱动程序。我在第 14.Linux 设备模型一章中遇到了这两个函数。

int device_register(struct device *dev);
int driver_register(struct device_driver *drv);
Run Code Online (Sandbox Code Playgroud)

由于 UART 是一个字符驱动程序,我使用 ( 动态创建了主alloc_chrdev_region)设备号,并使用cdevadd().

我在 omap-serial.c 中遇到了uart_register_driver()和。platform_driver_register()

我可以映射driver_register与 ,platform_driver_register()uart_register_driver映射与 tty 相关的函数。因为我是初学者,所以我不想使用 tty 相关的函数。

uart_register_driver与?有关device_driver()

请解释。

c serial-port linux-device-driver embedded-linux uart

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

在Beaglebone Black上启用UART

我无法启用UART.关于如何从更新uEnv.txt文件到更新内核启用和解决问题,我已经经历了许多不同的方向.我得出的结论是,使用与指令不同的内核可能是一个问题,但我不确定?我不太了解Beaglebone,我还在学习.每当我尝试使用Python测试UART并输入以下内容时:

导入Adafruit_BBIO.UART作为UART

UART.setup( "UART1")

我收到错误:文件"stdin",第1行,在模块中

RuntimeError:无法导出UART通道.

我也开始担心我根本没有capemgr.当我运行命令时:

ls sys/devices

我没有列出capemgr.

我正在使用最新的Debian Image:Jessie Debian 8.3(2016-01-24)

我正在运行的内核版本是4.1.17-ti-rt-r46.

我的DTC版本是1.4.1-g1e75ebc9

我真的很感激任何帮助.我几天来一直在努力解决这个问题.谢谢!

debian microprocessors uart beagleboard beagleboneblack

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

C++ unsigned char数组长度

我在我的C++程序中有六进制值的unsigned char数组:

unsigned char buff[] = {0x03, 0x35, 0x6B};
Run Code Online (Sandbox Code Playgroud)

我想计算这个数组的大小,以便我可以使用这个函数在UART端口linux上发送它:

if ((count = write(file,buff,length))<0)
{
    perror("FAIL to write on exit\n"); 
}
Run Code Online (Sandbox Code Playgroud)

因为我可以看到长度是int数,buff是一个可以在程序执行期间改变大小的数组.任何人都可以帮助我如何写它.谢谢

c++ linux uart

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