其中起始位固定为一个比特,停止位则可以是1、15或者是2比特(传送与接受一致),数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验位可以使用数据中的比特。2串行通讯最少需要几根线,分别如何连接?以9芯D型插头为例,至少需要3根数据线:串口的2脚发送数据TXD与另一串口的3脚(接收数据RXD)连接,同时两串口的5脚(信号地)连接在一起。3ARM的串行口有几个,相应的寄存器是什么?24102330自带3个UART端口通道,每个通道都可以工作于中断或者DMA模式,且都有16字节的FIFO用于数据发送和接受。涉及的寄存器有:1)涉及的UART通道管脚设置寄存器如设置rGPHCON将GPH2、GPH3引脚的功能设为TXD0、RXD0;2)波特率设置寄存器rUBRDIV
02;3)线控制寄存器rULCON
,主要用来选择每帧数据位和停止位宽度,奇偶校验模式及是否使用红外模式;4)控制寄存器rUCON
,用于选择UART时钟源、设置中断方式、接受超时时能、接受错误状态中断使能等;5)FIFO设置寄存器rUFCON
与FIFO状态寄存器rUFSTAT
;6)流量控制寄存器rUMCON
与流量状态寄存器rUMSTAT
;7)发送接受状态寄存器rUTRSTAT
,用来表明数据是否已经发送完毕、是否已经接受到数据;8)错误状态寄存器rUERSTAT
,用来表示各种错误是否发生如溢出错误、校验错误、帧错误等;9)发送缓冲数据寄存器rUTXH
与接受数据缓冲寄存器rURXH
。4用中断方式实现串口驱动。答:一种简单的利用中断方式实现的串口驱动设计:1)接受串口数据函数i
trecv_comDatachardesti
tcou
t函数流程:首先设置rINTMSK打开串口接受中断,然后挂起等待一个标识数据接受完毕的全局变量IsReady变为真,然后从全局缓冲区RxbufferMAX_LEN复制cou
t字节数据到dest所指的目标地址并返回;当串口数据到达时,在相应的IRQ中断服务程序中,接受串口数据至缓冲区RxbufferMAX_LEN,并设置全局变量IsReady为真值,然后清除并关闭串口接受中断。2)发送串口数据函数i
tse
d_comDatacharsrci
tcou
t函数流程:将src指向的cou
t字节长的源数据拷贝至发送缓冲区TxbufferMAX_LEN(以’0’作为数据结束标志),使能串口发送中断,然后挂起等待一个标识数据发送完毕的全局变量IsOver变为真,发送完毕后函数返回。缓冲区变空产生发送中断,在使能中断的情况下,在相应的IRQ中断服务程序中,将缓冲区TxbufferMAX_LEN中的有效数据写入发送寄存器或FIFO,并设置全局变量IsOver为r