HT46RU232拥有1个全双工的异步串行通信口。下面就简单介绍一下232串口的使用。
其操作时序如下:
(1).设置串口工作波特率、时钟、以及数据位数,起始位、停止位、错误检测等。
(2).准备等待发送/接收响应。
(3).当检测到发送/接收标志的时候,进行发送/接收数据。
程序范例:(中断法接收数据)
#pragma vector Uart_ISR @0x10 //串口中断入口申明
void Uart_init()
{
_ucr1=0x80; //设置BNO,PRT,PREN,STOP位
_ucr2=0xe4; //使能TXEN、RXEN
_brg=51; //设置波特率,高速,8M,9600
_euri=1; //开串口中断
_emi=1; //开总中断
}
void Uart_send() //数据发送函数
{
unsigned char i;
_txen=1;
i=_usr;
_txr_rxr=data; //data此处为全局变量,为待发送数据
}
void Uart_ISR() //中断数据接收
{
unsigned char i;
_rxen=1;
i=_usr;
data=_txr_rxr;
if(_perr==1||_nf==1||_ferr==1||_oerr==1) //错误检测
{
i=_usr;
i=_txr_rxr;
}
}
有了这几个函数,我们就可以利用232编写出串口通信的实际例程。此处仅为参考,详细使用方法,请参见盛群公司官方例程说明。
关键字:HT46RU232 UART 串口通信
引用地址:
HT46RU232 UART串口通信的使用
推荐阅读最新更新时间:2024-03-16 14:39
Linux下ARM和单片机的串口通信设计
0 引言 数据采集系统中由于单片机侧重于控制,数据处理能力较弱,对采集的数据进行运算处理比较繁琐,如果通过串口与上位机通信,利用上位机强大的数据处理能力和友好的控制界面对数据进行处理和显示则可以提高设计效率。串口通信以其简单的硬件连接,成熟的通信协议,成为上下位机之间通信的首选。移植了Linux 操作系统的s3c2440 可以在Linux 环境下操作串口,降低了串口操作的难度,可以使开发者集中精力开发大规模的应用程序,而不必在操作底层设计上耗费时间。 1 硬件连接 s3c2440 是三星公司生产的基于ARM9 核的处理器,采用3.3 V 电压供电; C8051Fxxx 系列单片机是美国CYGNAL 公司推出的与
[单片机]
串口通信的帧同步问题
封装STM32串口的底层时,遇到了串口帧同步的问题。虽然以前也遇到类似场合,写出来的代码基本能够解决问题,但是在逻辑上总是不能彻底的解释一些细节。 当前的工作环境: 由于代码想用在一个简单的PID闭环上,做在线的参数整定。假设当前PID解算周期是1ms,即每1ms,做一次串口的收包,解包,Pid解算,数据采集,然后打包,发包。也就是说是固定步长的解包。 串口的方案是开启收发的DMA以及DMA的中断。(坚决不考虑直接使用串口中断。一个字节中断一次太费资源)。DMA数组作为串口的FIFO队列(并不是真正意义上的队列)。 当前的需求: 1、时间节拍到来时,检查是否有收到数据。没有则跳出,有则进入下一步 2、检查数据中的包格式,比如包头是
[单片机]
AVR双CPU通信程序(异步方式)UART
;**************************************** ;功能:AVR双CPU通信程序,异步方式,类似于UART ;器件:AT90S2313 ;硬件:主从CPU的PD.2通过上拉电阻连接 ;时钟:4.0MHz ;**************************************** .include 2313def.inc .equ port =PORTD .equ PIN =PIND .equ ddr =DDRD .equ bit =2 ;***************************************** ;中断向量表 ;*************
[单片机]
C语言dsPIC / PIC24 serial bootloader和C#语言bootloader PC端串口通信程
新dsPIC/PIC24 Bootloader PhsBoot_v4.0是我最新用C语言实现的PIC bootloader, 采用串口通信,适用于dsPIC30, dsPIC33和PIC24, 并为其用C#写了PC端通信程序PhsLoader_v4.0。PhsLoader_v4.0通过串口按照自定义的通信协定发送数据PhsBoot_v4.0, PhsBoot_v4.0接收数据,按照通信协定解读数据,解读出其中Hex数据,并将其烧录到正确的位置。 通信协定 dsPIC/PIC24单片机端PhsBoot_v4.0和PC端PhsLoader_v4.0之间的通信数据包采用以下协定 STX CMD ADDRL ADDRH
[单片机]
STM32的三种串口通信协议介绍
STM32串口硬件电路 开发板串口硬件电路 STM32串口编程 1、整体流程 ① 开启GPIO时钟和USARTX时钟 ② 配置TX和RX引脚 ③ 初始化USART控制器 2、细节实现 ① 开启GPIO时钟和USARTX时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); ② 配置TX和RX引脚 /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO
[单片机]
串口通信工作方式1波特率的计算
本文只讨论串口通信工作方式1的波特率。 公式:波特率=(2^SMOD/32)*(T1溢出率) 其中,当SMOD=0,波特率正常 当SMOD=1,波特率加倍. T1溢出率就是T1定时器溢出的频率,只要算出T1定时器每溢出一次所需的时间T,就可以算出溢出率1/T.单位为Hz。 T1定时器使用工作方式2(TMOD=0X20),即8位初值自动重装的定时器。其工作过程是,在TLX和THX中装好相同的初值,在时钟的作用下TLX加一计数,当TLX加满溢出后,CPU会自动将THX的值装入TLX中......如此循环。 每计一个数的时间为一个机器周期,一个机器周期为12个时钟周期。如采用11.0592MHz的晶振,机器周期为12
[单片机]
STM32CubeIDE 中 HAL库的串口中断接收函数 HAL_UART_Receive_IT
一、代码自动生成以后的项目及代码结构: main.c中,调用了串口初始化 串口初始化函数赋值了串口的参数 相当于底层的初始化,配置引脚、并开启中断。 至此串口1配置完毕 二、库文件stm32f1xx_hal_uart.c内的秘密 2.1 初始化 1.usart.c中,MX_USART1_UART_Init 调用了库的HAL_UART_Init,将结构体传递进该函数中 2.HAL_UART_Init干了些什么事? if (huart- gState == HAL_UART_STATE_RESET) { huart- Lock = HAL_UNLOCKED; HAL_UART_MspInit(huar
[单片机]
AT91SAM3S串口UART初始化及收发数据
SAM3S中的UART串口是一个两线异步收发器。这个串口能用来通信或者跟踪。有两个DMA通道与UART串口关联,可通过使用DMA处理串口传输以节省CPU时间。 SAM3S4C中有两个UART。与外设引脚的对应关系如下: 板子上使用的是UART0,及PA9和PA10引脚。 SAM3S的UART结构框图 串口初始化,收发数据 的步骤如下: 1、配置相应IO口的引脚(设置IO时钟及引脚工作模式) 2、打开UART时钟 3、复位并停止UART 4、设置UART功能(奇偶校验UART_MR、波特率UART_BRGR、DMA UART_PTCR、收发使能UART_CR 等) 5、收发数据 UART_THR U
[单片机]