[mw_shl_code=c,true]void MP3Con(unsigned char n)
{
int i;
unsigned int MP3play[5] = {0xfd,0x02,0x01,0xdf};
unsigned int MP3plause[5]= {0xfd,0x02,0x02,0xdf};
if(1==n)
{
for(i=0;i<4;i++)
{
USART_SendData(USART2,MP3play);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
}
}
if(2==n)
{
for(i=0;i<4;i++)
{
USART_SendData(USART2,MP3plause);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
}
}
}[/mw_shl_code]
这是发送数据的函数,1和2分别对应两种控制mp3的.
[mw_shl_code=c,true]void USART2_IRQHandler(void)
{
//u8 RX_dat;
if(USART_GetITStatus(USART2,USART_IT_TXE)==SET)//USART_IT_RXNE:
{
USART_ClearITPendingBit(USART2,USART_IT_TXE);
// RX_dat=USART_ReceiveData(USART2);
//USART_SendData(USART2,RX_dat);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE) == RESET)
{
LED1_ONOFF(Bit_RESET);
Delay_ms(1000);
LED1_ONOFF(Bit_SET);
Delay_ms(1000);
} //
GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);
}
} [/mw_shl_code]
这个是中断函数,我用led的闪烁来判断是否进入了中断,可是好像没有进入,然后用逻辑分析仪检测TXD口发现有信号传输~~
[mw_shl_code=c,true] while(1)
{
MP3Con(1);
LED1_ONOFF(Bit_RESET);
Delay_ms(1000);
MP3Con(2);
LED1_ONOFF(Bit_SET);
Delay_ms(1000);
} [/mw_shl_code]
这是主函数里面发送数据的部分
有信号发送的话配置应该没问题吧,可是mp3好像并没有受控制,它的协议就是发MP3Con(1) 过去就开始播放,然后我发现中断函数没有调用,但是 程序又没有卡住,能执行下去(因为while(发送完成)),
才学这个没多久,求大神帮帮我,看一下问题出在哪,谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>