精华内容
下载资源
问答
  • 串口配置

    千次阅读 2018-09-11 10:29:51
    4.设置发送端和接受断输入输出方式(也就是配置端口,前面已经有笔记了)  注意:输出应该设置为复用功能推挽输出,而不是通用功能。 5.复位串口与停止复位 6.设置波特率 7.USART使能,发送使能,接收使...

    1.找到串口所在的总线,以USART1为例。

    2.打开串口端口

    3.找出发送端和接收端所在的IO口

    4.设置发送端和接受断输入输出方式(也就是配置端口,前面已经有笔记了)

       注意:输出应该设置为复用功能推挽输出,而不是通用功能。

    5.复位串口与停止复位

    6.设置波特率

    7.USART使能,发送使能,接收使能

     

     

    展开全文
  • 串口配置串口配置.zip

    2020-07-29 11:55:55
    串口通讯配置串口通讯配置
  • 串口配置工具

    2017-02-11 17:06:37
    串口配置工具,想要熟悉串口编程的朋友可以参考一下,使用到的协议是私有协议。
  • Ubuntu下USB转串口配置串口工具配置 Ubuntu下USB转串口配置串口工具配置
  • STM32F407 串口配置 基于CubeMx的STM32F407串口代码:6各串口均已启用DMA及空闲中断,支持不定长度数据接收;可通过CubeMx裁剪串口数量,裁剪后只需编译时删去极少量与删去硬件资源相关的代码即可移植使用;默认使用...
  • Halcon串口配置

    千次阅读 2017-04-03 17:59:19
    Halcon串口配置读写

    open_serial( : : PortName : SerialHandle)

    打开串口

    close_serial( : : SerialHandle : )

    关闭串口

    set_serial_param( : : SerialHandle, BaudRate, DataBits, FlowControl, Parity, StopBits, TotalTimeOut, InterCharTimeOut : )

    配置串口
    TotalTimeOut:总超时间隔,包含接收第一个字节的等待超时和接收两个字节之间的等待超时
    InterCharTimeOut :接收两个字节之间的等待超时,这个数值要小于总超时间隔
    如果TotalTimeOut和InterCharTimeOut 其中的一个设置为-1,则read_serial会一直等待到读取到NumCharacters个字节后才返回

    read_serial( : : SerialHandle, NumCharacters : Data)

    NumCharacters:读NumCharacters个字节后返回,如果到达等待超时时间,直接返回


    tuple_chr — Convert a tuple of integer numbers into strings of length 1.
    将整数元组转换成单个元素长度为1的字符串元组
    tuple_chrt — Convert a tuple of integer numbers into strings.
    将整数元组转换成字符串元组
    tuple_chrt配合read_serial使用

    tuple_chr ( [72, 101, 108, 108, 111, 10, 13], Chr)
    tuple_chrt ( [72, 101, 108, 108, 111, 10, 13], Chrt)
    Chr := ['H', 'e', 'l', 'l', 'o', '\n', '\r']
    Chrs := ['Hello\n\r']


    write_serial( : : SerialHandle, Data : )

    一次性写完所有数据后返回,无超时等待机制


    tuple_ord — Convert a tuple of strings of length 1 into a tuple of integer numbers.
    将单个元素长度为1的字符串元组转换成整数元组
    tuple_ords — Convert a tuple of strings into a tuple of integer numbers.
    将字符串元组转换成整数元组
    tuple_ords 配合write_serial使用

    tuple_ords (['Hello', '\n\r'], Ords)
    tuple_ord (['H', 'e', 'l', 'l', 'o', '\n', '\r'], Ord)
    Ords := [72, 101, 108, 108, 111, 10, 13]
    Ord := [72, 101, 108, 108, 111, 10, 13]

    总的Demo

    open_serial ('COM1', SerialHandle)
    * Set the parameters of the serial interface (e.g., a character-based terminal).
    set_serial_param (SerialHandle, 9600, 8, 'none', 'none', 1, 2000, 100)
    * Display a nice message on the terminal.
    write_serial (SerialHandle, ords(['Hello world!', '\n\r']))
    * Now read 10 characters from the terminal...
    read_serial (SerialHandle, 100, Data)
    * ...and if the user typed some characters within the one second...
    if (|Data| > 0)
        * ...convert the read data to a string.
        Read := chrt(Data)
    endif
    * Finally, close the serial interface so other programs can use it.
    close_serial (SerialHandle)

    展开全文
  • PCI串口配置

    千次阅读 2017-12-22 11:26:15
    PCI串口配置、 晶振由1.8432MHz变为14.7456MHz调试、 晶振14.7456MHz,波特率达到1Mbps以上、 485串口发送/接收高低电平配置

    ==============================================================
    作者:shanzongyingcao
    网址:http://blog.csdn.net/shanzongyingcao
    版权所有,转载请保留此段声明

    ==============================================================

    晶振由1.8432MHz变为14.7456MHz调试

    • PCI串口,晶振由1.8432MHz变为14.7456MHz,先将base_baud由原先的115200调整为921600,晶振即为(base_baud*16)
    • 这里以芯片0XuPCI954(ID为0x1415:9501)为例;
    • 在…/linux-source-4.4.0/drivers/tty/serial/8250/8250_pci.c文件中,找到 serial_pci_tbl[]数组:
      static struct pci_device_id serial_pci_tbl[] = {
      ……
      }

      并找到对应的VENDOR_ID及DEVICE_ID,这里对应如下:
      static struct pci_device_id serial_pci_tbl[] = {
      ……
      {PCI_VENDOR_ID_OXSEMI,PCI_DEVICE_ID_OXSEMI_16PCI954,
      PCI_ANY_ID, PCI_ANY_ID, 0, 0,
      pbn_b0_4_115200 }
      ……
      }
      其中,pbn_b0_4_115200配置base_baud,这里改为pbn_b0_4_921600,将base_baud设为921600,这样就匹配了晶振14.7456MHz。
      此时,驱动中默认TCR=0(16xclock mode),支持的最大波特率为921600bps。
      要支持更高的波特率,需修改TCR,如:
      TCR=4(4xclock mode),支持的最大波特率为3686400bps。

    晶振14.7456MHz,波特率达到1Mbps以上

    • 配置波特率达到1Mbps以上,需配置寄存器TCR=4(4xclock mode),支持的最大波特率为3686400bps。
    • 经测试,1Mbps以上的波特率不是很准确,如:
      配置波特率为1.152Mbps时,示波器测试约为1.28Mbps;
      配置波特率为3.5Mbps时,示波器测试约为3.68Mbps。
    • 修改TCR=4:
      在…/linux-source-4.4.0/drivers/tty/serial/8250/serial_port.c文件中,
      int serial8250_do_startup(struct uart_port *port)
      {
      ……
      if (port->type == PORT_16C950) {
      ……
      printk(“sbs serial8250_do_startup:read TCR=0x%x.\n”, serial_icr_read(up, UART_TCR));
      printk(“sbs serial8250_do_startup:set TCR=4\n”);
      //serial_icr_write(up, UART_CKS, 0x0);
      serial_icr_write(up, UART_TCR, 0x04); /* set TCR=4 */
      printk(“sbs serial8250_do_startup:read TCR=0x%x.\n”, serial_icr_read(up, UART_TCR));
      }
      ……
      }

    • 使divisor匹配TCR=4(4xclock mode),修改如下:
      在…/linux-source-4.4.0/drivers/tty/serial/8250/serial_core.c文件中,

     unsigned int
    uart_get_divisor(struct uart_port *port, unsigned int baud)
    {
        unsigned int quot;
        /*
         * Old custom speed handling.
         */
        if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)
            quot = port->custom_divisor;
        else{
                    //  quot = DIV_ROUND_CLOSEST(port->uartclk, 16 * baud);
                    if (port->type == PORT_16C950)
                            quot = DIV_ROUND_CLOSEST(port->uartclk, 4* baud); // add sbs
                    else
                            quot = DIV_ROUND_CLOSEST(port->uartclk, 16 * baud);               
            }
            printk("sbs uart_get_divisor: quot=%d\n", quot);
    
        return quot;
    }
    • 修改获取波特率的范围到3.7Mbps
      在…/linux-source-4.4.0/drivers/tty/serial/8250/serial_port.c文件中,
    static unsigned int
    serial8250_get_baud_rate(struct uart_port *port, struct ktermios *termios,
                 struct ktermios *old)
    {
        unsigned int tolerance = port->uartclk / 100;
    
        /*
         * Ask the core to calculate the divisor for us.
         * Allow 1% tolerance at the upper limit so uart clks marginally
         * slower than nominal still match standard baud rates without
         * causing transmission errors.
         */
        /*    return uart_get_baud_rate(port, termios, old,
                      port->uartclk / 16 / 0xffff,
                      (port->uartclk + tolerance) / 16);*/     
            if (port->type == PORT_16C950)
                return uart_get_baud_rate(port, termios, old,
                      port->uartclk / 16 / 0xffff,
                      (port->uartclk + tolerance) / 4);
            else
                    return uart_get_baud_rate(port, termios, old,
                      port->uartclk / 16 / 0xffff,
                      (port->uartclk + tolerance) / 16); 
    }
    • 程序中添加了判断条件if (port->type == PORT_16C950),只配置了PCI9054芯片,不影响其他非PCI串口。

    485串口接收/发送高低电平配置

    • 数据手册描述如下:
      这里写图片描述
      这里写图片描述

    • 设置485方向,低电平发送,高电平接收:
      在…/linux-source-4.4.0/drivers/tty/serial/8250/serial_port.c文件中,
      int serial8250_do_startup(struct uart_port *port)
      {
      ……
      if (port->type == PORT_16C950) {
      ……
      serial_icr_write(up, UART_CKS, 0x0);//00,配置DTR
      serial_icr_write(up, UART_ACR, 0x10);//低发送
      }
      ……
      }

    • 设置485方向,高电平发送,低电平接收:
      在…/linux-source-4.4.0/drivers/tty/serial/8250/serial_port.c文件中,
      int serial8250_do_startup(struct uart_port *port)
      {
      ……
      if (port->type == PORT_16C950) {
      ……
      serial_icr_write(up, UART_CKS, 0x0);//00,配置DTR
      serial_icr_write(up, UART_ACR, 0x18);//高发送
      }
      ……
      }

    展开全文
  • 单片机串口配置

    2015-03-14 22:54:32
    单片机串口配置
      
      /*串口参数配置*/
      USART_InitStructure.USART_BaudRate = 115200;                 /*设置波特率为115200*/
      USART_InitStructure.USART_WordLength = USART_WordLength_8b;  /*设置数据位为8位*/
      USART_InitStructure.USART_StopBits = USART_StopBits_1;       /*设置停止位为1位*/
      USART_InitStructure.USART_Parity = USART_Parity_No;          /*无奇偶校验*/    
      USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /*没有硬件流控*/
      USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;      /*发送与接收*/
      /*完成串口COM1的时钟配置、GPIO配置,根据上述参数初始化并使能*/
    
      STM_EVAL_COMInit(COM1, &USART_InitStructure);
    
    
      完成上述配置之后,单片机就会有串口打印了

    展开全文
  • STC15W4K 4路串口配置

    2019-04-28 09:11:48
    本程序包含4 路串口配置,使用STC15W4K32S4单片机完成相关配置。
  • 串口配置的一般步骤
  • 串口配置流程

    千次阅读 2015-06-24 15:29:24
    串口配置流程 1、保存原串口信息,使用tcgetattr()函数;struct termios newtio, oldtio; tcgetattr(fd, &oldtio); 2、激活选项有CLOCAL和CREAD,用于本地连接和接收使能;newtio.c_cflag |= CLOCAL | CREAD...
  • msm8909 串口配置

    2019-08-07 18:06:54
    msm8909 串口配置 msm8909-mtp.dtsi &blsp1_uart1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart_console_sleep>; }; &blsp1_uart2 { status = "okay"; ...
  • 串口配置的一般步骤

    2020-06-09 14:11:18
    串口配置的一般步骤 ①串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd(); ②串口复位:USART_DeInit(); 这一步不是必须的 ③GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP ④串口参数初始化:USART_...
  • 树莓派3之串口配置

    万次阅读 2018-03-04 18:13:08
    树莓派3之串口配置树莓派3代串口的麻烦:树莓派从大的方向来说一共出了3代,每一代的CPU外设基本相同,但内核不同,外设里面一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0...
  • Hi3531D串口配置流程

    2020-09-29 10:44:52
    Hi3531D串口配置流程 1、Hisi 3531D串口配置流程 海思默认只开启UART0单元作为调试功能使用,在实际应用中我们常常需要使用UART1、UART2来与外围设备对接,以实现串口通信。此时我们就需要配置启用UART1、UART2...
  • linux下的串口配置

    千次阅读 2019-06-25 21:06:44
    stty -F /dev/ttyUSB0 -a //查看/dev/ttyUSB0的串口配置 stty -F /dev/ttyUSB0 ispeed 115200 ospeed 115200 cs8 //配置/dev/ttyUSB0的输入输出波特率和数据位 /*************************************...
  • 串口配置RS232OpenRS232ConfigureRS232SendRS232ReceiveRS232CloseRS232SetHandshake CAPL串口的API就如下图那么多,下面分别介绍API怎么用。 RS232Open dword RS232Open( dword port ) 打开串口,当串口不存在...
  • 在蓝桥杯嵌入式开发板上共有两个串口,在进行串口配置前,我们先查看原理图,知道串口的收发引脚。 可以看到串口1(接收引脚PA10,发送引脚PA9),串口2(接收引脚PA3,发送引脚PA2),有两个串口供我们选择,...
  • 使用stm32CubxMX生成的用于stm32f103c8t6芯片使用的USB虚拟串口配置工程,同时生成可以用于keil直接打开的工程。
  • LPC串口配置及使用

    千次阅读 2018-12-11 18:44:59
    LPC串口配置及使用 x86 CPU未单独提供UART控制器接口,而是将UART控制器寄存器隐藏在LPC IO解码功能中,以Xeon D-1500为例,该CPU支持两个UART口,分别为COMA和COMB。 ...
  • 笔记 STM32f103串口配置

    2020-07-11 02:21:25
    串口配置 最近闲来无事,发现以前买的esp 12E开发板在抽屉里躺灰就网上找资料折腾了两三天,结果一顿操作猛如虎,一看是个辣鸡。怎么也烧写不了固件,我怀疑是开发板有问题。所以我又在乐鑫官网买了个新的。然后脑子...
  • STM32F407串口配置

    千次阅读 2019-01-04 17:17:50
    串口配置 一. 串口操作相关库函数(省略入口参数) void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能 void USART_Cmd();//使能串口 void USART_ITConfig();//使能相关中断 ...
  • stty设置串口参数 ...Linux 查看串口配置 Stty -F /dev/ttyUSB0 去掉串口回显 Stty -F /dev/ttyUSB0 -echo 监控串口数据接收 Cat /dev/ttyUSB0 & 记得选上发送新行 开发板上的串口工具 busybox m...
  • stm32cubemx 串口配置

    千次阅读 2019-07-30 12:03:21
    stm32cubemx经过新建工程,芯片选型后进入到芯片功能配置环节,本篇注重讲解cube的串口配置环节:如下图所示,在Pinout&Configuration栏下方的options窗口中的connentivity栏中选中USART1。 (1)双击,出现...
  • Cortex-M0系列 ~ 串口配置

    千次阅读 2018-08-18 11:04:34
    串口的相关概念自行百度理解,在上节的红外载波调制已经介绍过I/O的复用功能,使能I/O时钟,同时把GPIO模式设置为复用功能对应的模式,使能引脚复用,串口配置在此基础上对串口参数做初始化配置,包括比特率、停止位...
  • 进入串口配置项(下图圈出需要改动的项) d.修改设备接点 首先要查看当前终端需要连接的串口设备接点 最终修改结果 e.保存配置 f.退出 g.测试 在终端输入minicom,会自动连接到串口 minicom ...
  • STC89C52_51单片机_串口配置_UART串口通信 代码及链接 IO口模拟UART串口通信 UART串口传送数据示意图 挖坑:波特率&TH0是怎么算的? #include<reg52.h> sbit PIN_RXD = P3^0; ...
  • stm32——串口配置一般步骤

    千次阅读 2019-07-30 21:18:58
    串口配置的一般步骤 1、串口时钟使能,GPIO时钟使能: RCC_APB2PeriphClockCmd() 2、串口复位 USART_DeInit(); ——非必需 3、GPIO端口模式设置 GPIO_Init(); ——模式设置为GPIO_Mode_AF_PP 4、串口参数初始...
  • 树莓派串口配置

    2019-10-13 09:40:22
    执行命令进入树莓派配置:sudo raspi-config 依次选择 5. Interfacing Options ->Serial ->no -> yes 打开/boot/config.txt文件,查找是否存在enable_uart=1 不存在则在最后添加 如果是树莓派3B,板载的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,511
精华内容 4,204
关键字:

串口配置