初级会员

- 积分
- 87
- 金钱
- 87
- 注册时间
- 2015-8-13
- 在线时间
- 9 小时
|
5金钱
本人借鉴的是“ALIENTEK MINISTM32 实验3 串口实验”;原始目的是为了通过串口周期性修改PWM的占空比。(我通过串口以每50ms发送一次数据做的测试;发送8个数据后串口中断没有响应了)波特率设置为9600主函数除了基本设置为,就一个while死循环;
串口中断函数
#if EN_USART1_RX
void USART1_IRQHandler(void)
{
u8 Res;
#ifdef OS_TICKS_PER_SEC
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1);//(USART1->DR);
if((USART_RX_STA&0x8000)==0)//
{
if(USART_RX_STA&0x4000)//
{
if(Res!=0x0a)USART_RX_STA=0;
else
{
USART_RX_STA|=0x8000;
//加入的代码
idutyCycle=atoi((char*)USART_RX_BUF);//char*转int
printf("idutyCycle=%d\r\n",idutyCycle);//输出显示;调试的时候用的
USART_RX_STA=0;
memset( USART_RX_BUF, '\0', sizeof(USART_RX_BUF) );//清空USART_RX_BUF
TIM_SetCompare1(TIM4,idutyCycle); //修改占空比
}
}
else
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
}
}
}
}
上位机用XCOM V2.0测试的时候发送周期在40ms的时候也会有这个问题。
采用自己编写的上位机串口调试助手发送的话;发送8次串口中断就没有响应了。
想请教各位大侠,这是什么问题呢?
|
最佳答案
查看完整内容[请看2#楼]
上位机的问题已经通过“http://blog.csdn.net/itas109/article/details/51337538”解决了;
硬件测试应该不会有问题了。
|