这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| icore3_fpga_15 [2020/03/03 19:17] zgf | icore3_fpga_15 [2022/03/18 15:43] (当前版本) sean | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| |技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
| |技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
| - | |技术论坛|http://www.eeschool.org||| | ||
| ^ 版本  ^ 日期  ^ 作者  ^ 修改内容  ^ | ^ 版本  ^ 日期  ^ 作者  ^ 修改内容  ^ | ||
| | V1.0 | 2020-03-03  | gingko  | 初次建立  | | | V1.0 | 2020-03-03  | gingko  | 初次建立  | | ||
| \\ | \\ | ||
| - | ===== 实验三十四:基于UART的ARM和FPGA通信实验 ===== | + | ===== 实验十五:基于UART的ARM和FPGA通信实验 ===== | 
| ==== 一、实验目的与意义 ==== | ==== 一、实验目的与意义 ==== | ||
| 行 40: | 行 39: | ||
| * 知道了发送流程,那么接收流程也就清楚了。检测接收端口电平,如果出现低电平,开始计数,计满2604个时钟周期之后,将持续接收的八位二进制数据保存,即为接收数据。这里要注意,时钟的上升沿要保持在数据稳定的区间,以保证接收数据的准确性。 | * 知道了发送流程,那么接收流程也就清楚了。检测接收端口电平,如果出现低电平,开始计数,计满2604个时钟周期之后,将持续接收的八位二进制数据保存,即为接收数据。这里要注意,时钟的上升沿要保持在数据稳定的区间,以保证接收数据的准确性。 | ||
| ==== 四、代码讲解 ==== | ==== 四、代码讲解 ==== | ||
| - | + | ||
| * 明白串口传输的收发过程之后,就可以通过代码实现了。首先,接收和发送可以划分成独立的两个模块。其次,串口波特率有9600bps、19200bps、38400bps、57600bps、115200bps等不同的波特率。那么,还要加一个波特率控制模块。 | * 明白串口传输的收发过程之后,就可以通过代码实现了。首先,接收和发送可以划分成独立的两个模块。其次,串口波特率有9600bps、19200bps、38400bps、57600bps、115200bps等不同的波特率。那么,还要加一个波特率控制模块。 | ||
| * 先讲一下波特率控制模块,这个模块本质上是对系统时钟做分频处理。通过计数,将25MHz的系统时钟分频成9600Hz、19200Hz等的周期信号。部分代码如下: | * 先讲一下波特率控制模块,这个模块本质上是对系统时钟做分频处理。通过计数,将25MHz的系统时钟分频成9600Hz、19200Hz等的周期信号。部分代码如下: | ||
| 行 155: | 行 154: | ||
| * 3)将跳线帽插在USB UART; | * 3)将跳线帽插在USB UART; | ||
| * 4)把iCore3(USB_UART)通过Micro USB线与计算机连接,为iCore3供电; | * 4)把iCore3(USB_UART)通过Micro USB线与计算机连接,为iCore3供电; | ||
| - | * 5)打开Commix串口精灵,找到对应的对口打开; | + | * 5)打开Commix串口精灵,找到对应的端口打开; | 
| * 6)打开Quartus II开发环境,并打开实验工程;  | * 6)打开Quartus II开发环境,并打开实验工程;  | ||
| * 7)烧写FPGA程序到iCore3上; | * 7)烧写FPGA程序到iCore3上; | ||