新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2017-7-17
- 在线时间
- 7 小时
|
1金钱
本帖最后由 AlexVinci 于 2017-7-17 16:44 编辑
我想通过串口通信向单片机发送一个数据,然后将这个数据存入一个变量,将该变量作为控制TIM3的脉冲个数。[mw_shl_code=c,true]while(1)
{
if(USART_RX_STA)
{
len=USART_RX_STA&0x3fff;
for(t=0;t<len;t++)
{
buffer[t]=USART_RX_BUF[t];
USART_SendData(USART1, buffer[t]);
}
cnttemp = (USART_RX_BUF[0]-'0')*100+(USART_RX_BUF[1]-'0')*10+(USART_RX_BUF[2]-'0');
USART_RX_STA=0;
}
if(cnttemp>0){
TIM_SetAutoreload(TIM3, 4);
TIM_Cmd(TIM3,ENABLE);
}
}[/mw_shl_code]
[mw_shl_code=c,true]void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_4);
GPIO_SetBits(GPIOB,GPIO_Pin_4);
if(cnttemp)
cnttemp=cnttemp-1;
LED1=!LED1;
}
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}[/mw_shl_code]
|
最佳答案
查看完整内容[请看2#楼]
extern u16 cnttemp;这是变量定义的语句。
实际情况就是脉冲个数一直有问题,与发送的值不匹配。
|