如题,我用串口调试助手接到我的板子上,将波特率设置为9600,接收到的数据正常,我的线长5m
uint8_t Rx_dat3[]={0x5A,0xA5,0x07,0x82,0x00,0x84,0xC1,0x01,0x00,0x03};//切图
int i,n,len;
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为115200
LED_Init(); //LED端口初始化
while(1)
{
//按键
if(KEY==0)//松开
{
LED1=1;
}
if(KEY==1)//按下按键
{
for(i=0;i<10;i++)
{
USART_SendData(UART4,Rx_dat3[i]);
delay_ms(20);
LED1=0;
LED2=1;
LED3=0;
LED4=0;
}
delay_ms(300);
}
}
}
然后我将波特率设置为115200,接收到的数据就变异常了,代码部分只修改了波特率的设置。
uint8_t Rx_dat3[]={0x5A,0xA5,0x07,0x82,0x00,0x84,0xC1,0x01,0x00,0x03};//切图
int i,n,len;
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为115200
LED_Init(); //LED端口初始化
while(1)
{
//按键
if(KEY==0)//松开
{
LED1=1;
}
if(KEY==1)//按下按键
{
for(i=0;i<10;i++)
{
USART_SendData(UART4,Rx_dat3[i]);
delay_ms(20);
LED1=0;
LED2=1;
LED3=0;
LED4=0;
}
delay_ms(300);
}
}
}
网上搜了下,确实有说波特率会影响232的传输距离,但具体的一个选择关系应该如何判断,譬如多少距离应该选择对应的什么波特率,有没有一个定量的标准。
|