在下最近在做一个项目,需要用串口调试助手向板子发送如:112233445566778899AA(10对16进制数)的数字串。
想在串口3中断程序中得到CmdCode[0]=11,CmdCode[1]=22.……CmdCode[8]=99,CmdCode[9]=AA。
也就是说想把这112233445566778899AA(10对16进制数)的数字串分配到一个10个元素的数组中。
为了验证能否达到此目的,我将此10个元素中任意一个元素,如第7个元素USART_SendData(USART3,CmdCode[6]);发送到电脑,如“USART_SendData(USART3,CmdCode[6]);”,
结果发送上来的在串口调试助手中得到的是00000000000000000000,也就是说并没有将这一串16进制数分到每个数组的元素中。
我写的程序如下所示,我百思不得其解,请高手指点我一下。谢谢了
u8 CmdCode[10] ;
void USART3_IRQHandler(void)
{
u8 CmdIndex;//i;
if(USART_GetITStatus(USART3, USART_IT_RXNE)==SET)
{
USART_ClearITPendingBit(USART3, USART_IT_RXNE);
for(CmdIndex = 0;CmdIndex < 10;CmdIndex++)
{
CmdCode[CmdIndex] = USART_ReceiveData(USART3);
}
USART_SendData(USART3,CmdCode[6]);//我为了验证是否分配成功,把数组的任意一位元素发到串口中,看是否能成功
}
if(USART_GetITStatus(USART3, USART_IT_TXE)==SET)
{
USART_ClearITPendingBit(USART3, USART_IT_TXE);
}
} |