单个字节的收发都没问题,看了下字符串的收发,还是不明白原理,在串口中断里面还是会用的查询数据寄存器的函数USART_ReceiveData(USART1),虽然定义了一个变量来读取数据data=USART_ReceiveData(USART1);然后在把这个变量data赋给一个数组,但是data的值不是一样永远是字符串的最后一个字节吗?因为我发送的字符串是一次性发送的啊,不是一个一个的发送啊,数据寄存器里的数据会被最后一个字符覆盖啊。如果我发送一个字符就读取一次数据,然后赋给数组,这样是可以的,但是这就不是接收字符串了啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
问题不在数组上面, res=USART_ReceiveData(USART1);res只是一个整型变量,接收数据后res的值只可能是字符串的最后一个字符啊;难道第一字符接收给res后,res在赋值给数组的【1】元素,但是这里没有循环啊,而且发送端是一次性发送啊,串口的数据寄存器要一个个的处理了?这不可能啊。
res是整型变量也只能表示一个字符啊,所以这个中断不可能接收一个字符串啊。但是网上都是这样的啊
一周热门 更多>