XiLinx SDK FreeRTOS学习记录(三)——UART串口与蓝牙收发移植以及测试记录
奇怪的现象
拿着完整的移植好的代码去跑,一直无法启动,找不到问题出在哪。后来用以前能跑的代码一点一点移植,移植一点跑一次,到最后成功启动了,不知道最开始无法启动的问题是出在哪里了。
蓝牙发送不出来,中断是进入了的,但是就是数据发送不到手机上,而且手机发送的数据板子能收到,后来用了师兄的代码,数据是能发出去的。我怀疑问题出在XUartPs_SendByte()
函数上,好像对它的用法还不太会,再查一查。
对之前的疑问的测试
之前对UART接收中断的理解还是有点问题的,只有串口接收到了足够的数据,或者产生超时了才会进入我们自己的中断函数中,并且只会进入一次,因此我们在将接收到的数据存入我们自己的数组中时完全没有必要去设置一个什么断点,因为它会一次性读取完整的数据。还有一点点小的疑问就是,我们不知道当发送135字节,FIFO阈值设置为50时,XUartPs_InterruptHandler()
函数中的这段代码执行了几次,之后可以测试来看看。
if((IsrStatus & ((u32)XUARTPS_IXR_RXOVR | (u32)XUARTPS_IXR_RXEMPTY |
(u32)XUARTPS_IXR_RXFULL)) != (u32)0) {
/* Received data interrupt */
ReceiveDataHandler(InstancePtr);
}