华大单片机 | 您所在的位置:网站首页 › 串口库函数 › 华大单片机 |
目录
华大单片机---串口通信1.串口通信基本原理(1)串口通信原理:(2)华大的串口通信:(3)简单介绍下:(4)多字符发送:
2.初始化代码3.发送代码:4.接收中断代码
华大单片机—串口通信
1.串口通信基本原理
(1)串口通信原理:
这部分可以百度,或者去看下野火的stm32教程,串口通信原理基本一样。这里不再详细讲解! (2)华大的串口通信:这部分可以直接看用户手册的UART章节。我保证肯定讲的比我详细。里面也有各种寄存器,学会看数据手册是非常重要的,我也是工作后才明白的。之前学习stm32都是看别人的例程跑通就移植了。怎么实现压根不管。第一次用这种资料比较少的单片机,你能依靠的只有几百页的手册了。一遍不懂看多几遍。。。 (3)简单介绍下:发送数据 发送数据时,与 UARTx_SCON.REN 的值无关,将所发送数据写入 UARTx_SBUF 寄存器中,数据就会从 TXD 移出(低位在先,高位在后)。 接收数据 接收数据时,需将 UARTx_SCON.REN 位置 1,并将 UARTx_ISR.RI 位清 0。开始接收 RXD 上数据(低位在先,高位在后),当接收完毕,可以从 UARTx_SBUF 寄存器读出。 接收缓存 通用 UART(UART0/1)接收端有一个帧长度(8/9bits)的接收缓存,也就是说当一帧数据接收完毕后,接收缓存中的数据会被一直保持,直到下一帧数据的 Stop 位接收完毕后,接收缓存才会更新为新一帧数据。 发送缓存 通用 UART(UART0/1)发送端不支持发送缓存。如果在发送数据过程中,填写UARTx_SBUF 寄存器,将会破坏当前正在发送数据。软件应该避免这种操作。 (4)多字符发送:基本串口通信用demo都可以跑通的,但是demo都是基于一个字节的,在实际使用中,通常都是发送多个字节或者字符串的。因此我参考了野火的多字节发送和字符串发送的代码。自己写了多字节发送代码。 用中断方式,自己写发送函数,开启发送中断,只需发送第一个字节,发送完成后会进入串口中断,中断中判断是否是发送中断,如果是,判断是否已经发送最后一个字节,如果是,关闭发送中断;如果没有发送到最后一个字节,则发送下一个字节。2.查询方式,从第一个字节循环发送,查询等待发送完成标志,判断是否是最后一个字节,不是,循环发送一个字节,是最后一个字节,退出循环。要发送的内容可以放在一个数组之中 - 2.初始化代码 //串口0引脚配置代码 void Uart_PortInit(void) { stc_gpio_cfg_t stcGpioCfg; DDL_ZERO_STRUCT(stcGpioCfg); Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE); //使能GPIO模块时钟 /// |
CopyRight 2018-2019 实验室设备网 版权所有 |