版主: 51FPGA |
lemonxin
最后登陆时间:2017-09-22 16:15:10 |
最近在学习xilinx的microblaze,做了一个闪灯和串口的小实验,发现串口波特率有点问题,不知道怎样解决,问题如下: 1、首先,我在vivado下设置的串口ip核波特率为9600,8个数据比特,如图所示:
2、然后综合实现生成BIT文件后进入SDK部分编写C代码,用的是HELLO WORLD 模版,打印hello,并加入了闪灯的代码,如图所示。根据硬件平台生成串口配置C代码中波特率也是9600,在图中可以看到。
3、烧写进FPGA后,在PC端的串口调试助手观察FPGA发过来的数据,当波特率设为9600时,传过来的是乱码,当换为4800后,就接收正常,如图所示:
4、大神们能解释一下这是为什么吗?为什么波特率匹配(9600)却乱码,不匹配(4800)却能接受正常?还有一个问题,就是vivado的串口IP核没有设置停止位的选项,那么这个ip核默认停止位是几位? PC端接收时停止位应该设置为几位?在实验过程中,我用示波器抓了一下串口数据,发现FPGA发出来的数据携带两个比特的停止位(10),PC端接收时停止位设置为1和2,都能成功接到hello,不懂为什么设置为1时也能收到。求大神赐教,小女子感激不尽~ 关键词:microblaze SDK 串口 波特率 |
共1条 1/1 1 |