本帖最后由 15056048066 于 2015-5-5 16:23 编辑
(PC用串口助手向单片机发送1个字符串,单片机接收后发回PC)UART0的通信,向单片机发送一个16进制字符串“AA AA 01 02 FF FF”,收到后把这个字符串回发。现在的问题是,手动一个一个发,单片机可以进入UART0中断,并把字符串回发。如果1次发送2个字符或是以上,就结果是就第一个字符接收正确;而且,单看进去中断的次数,单片机都跟不上发数的次数。晶振是22.1184M,波特率是115200,后来换成9600,结果一样。如果只是单片机向上位机发送一个已知的数组,串口助手接收到的数也是正确的。 目的是实现上位机和单片机通讯,主机发送的命令格式为 6 个字节 ,包括字头、地址、功能和字尾;如“AA AA 01 02 FF FF”,从机收到后回复相应的字符串。主要是判断接收到的字符串是不是发送的,所以就把字符串再发回主机,现在的问题是发送应该没问题,因为可以发送已知的字符串,但接收再发回的就有问题,问题应该出在接收上了,不知道这样分析可以吗?
|