中级会员
 
- 积分
- 246
- 金钱
- 246
- 注册时间
- 2018-8-1
- 在线时间
- 43 小时
|
1金钱
上位机按16进制发送1234给单片机,上位机接受到1234,说明上位机是先发高8位再发低八位,
这么写哪里有问题
void USART1_IRQHandler(void) //蓝牙接收中断 上位机串口助手先发高位再发低位
{
static u8 i = 0;
u8 r;
u16 hx = 0, lx = 0;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
r =USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据,
if(i == 0)
{
i = 1;
hx = r;
}
else
{
i = 0;
lx = r;
Dout = hx*256+lx;
}
USART_SendData(USART1,r);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);
}
USART_ClearFlag(USART1,USART_FLAG_TC);
}
|
最佳答案
查看完整内容[请看2#楼]
所以您运行的时候有什么问题? 好像u16 hx = 0的hx也该加个static吧, 要不然数值会丢失.
|