JY901陀螺仪连接stm32单片机时,串口输出buff除了第一位其余为均为零

hello_dzm 2018-12-19 02:59:12
void UART4_IRQHandler( void )
{
uint8_t dat = 0;
uint8_t j = 0;
//DUG_PRINTF( "*");
if( USART_GetITStatus( UART4, USART_IT_RXNE ) != RESET ) /* 串口接收到数据 */
{
USART_ClearITPendingBit( UART4, USART_IT_RXNE ); /* 清除USART4接收中断标志*/

/* 如果接收缓冲区溢出,则不装载;否则装载结束缓冲区中 */
if( RS485_2_Recv_Buf_LoadPtr < DEF_RS485_BUF_LEN )
{
DUG_PRINTF("DEF_RS485_BUF_LEN:%d",DEF_RS485_BUF_LEN);
dat = ( UINT8 )USART_ReceiveData( UART4 );
RS485_2_Recv_Buf[RS485_2_Recv_Buf_LoadPtr++]=dat;
DUG_PRINTF("RS485_2_Recv_Buf[0]:%d\n",RS485_2_Recv_Buf[0]);
DUG_PRINTF("RS485_2_Recv_Buf[1]:%d\n",RS485_2_Recv_Buf[1]);
DUG_PRINTF("RS485_2_Recv_Buf[2]:%d\n",RS485_2_Recv_Buf[2]);
DUG_PRINTF("RS485_2_Recv_Buf[34]:%d\n",RS485_2_Recv_Buf[34]);
DUG_PRINTF("RS485_2_Recv_Buf[511]:%d\n",RS485_2_Recv_Buf[511]);

if(RS485_2_Recv_Buf[0]!=0x55)
{
RS485_2_Recv_Buf_LoadPtr=0;
return;
}



第一幅图是陀螺仪发出的数据,(十六进制)


第二幅图是输出的陀螺仪传输的数据到缓冲区中的,不应该第一位不为零其余为均为零啊,
请各位大神帮忙看一下,
...全文
869 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46831166 2020-06-09
  • 打赏
  • 举报
回复
怎么决绝的啊?
hello_dzm 2018-12-22
  • 打赏
  • 举报
回复 1
果然万事靠自己,自己给自己结贴吧.
for( i = 0; i<110; i++)
{
while(!(USART_GetITStatus( UART4, USART_IT_RXNE ) != RESET))
{

}

dat = ( UINT8 )USART_ReceiveData( UART4 );
RS485_2_Recv_Buf[i++] = dat;
}
hello_dzm 2018-12-19
  • 打赏
  • 举报
回复
还有就是我的单片机连接上陀螺仪后,陀螺仪一直发送数据,这样就一直进入我的中断,那我其他的进程就没法工作了,请问有什么方法解决吗

27,513

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧