我在一个任务中调用串口发送数据的函数,为什么我用串口助手接收到的不正确呢,下面是我发送函数,请大家帮忙看看,我测试几组数据是:
发送1,接受到的是06;
发送2,接受到的是18;
发送3,接受到的是1E;
发送4,接受到的是60;
发送5,接收到的是66;
[mw_shl_code=c,true]
/*发送一个字节数据,我这里发的是数字1用于测试*/
void usart_sendbit(u8 tt)
{
u8 i,t;
u8 buf[5]={1,2,3,4,5};
t=tt;
USART1->DR=1;
while((USART1->SR&0X40)==0);//等待发送结束
}
[/mw_shl_code]
[mw_shl_code=c,true]/*这是发送数据的任务*/
void TaskPanDuan(void *pdata)
{
u8 ma;
while(1)
{
ma=1;
usart_sendbit(ma);
OSTimeDlyHMSM(0,0,5,0);
}
}
[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
说明你波特率设置错了。
---------------------------------
不用os的发送没有问题,发送函数是一样的。
---------------------------------
串口初始化就用的自带的串口例程的初始化,波特率设置的为9600,应该没有问题啊。
---------------------------------
解决了,串口助手的波特率设置为4800就能正确接受了,但是我的程序里明明设置的波特率是9600啊,这是为什么呢?
一周热门 更多>