论坛元老
 
- 积分
- 3772
- 金钱
- 3772
- 注册时间
- 2015-4-26
- 在线时间
- 765 小时
|
发表于 2018-1-5 10:27:36
|
显示全部楼层
[mw_shl_code=applescript,true]void usart1_Send(u8 len)
{
tx1_num=0;
if(len>1)
{
tx1_nums=len;
USART_SendData(USART1,tx1_dat[0]);
USART_ITConfig(USART1,USART_IT_TXE,ENABLE);
}
else
{
tx1_nums=1;
USART_SendData(USART1,tx1_dat[0]);
}
}
void USART1_IRQHandler(void)
{
OS_ERR err;
OSIntEnter();
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) //接收中断
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
rx1_dat[rx1_num]=USART_ReceiveData(USART1);
rx1_num++;
// if(rx1_dat[0] != 0xaa)rx1_num = 0;
// if(rx1_num>=5)
// {
// rx1_num=0;
// OSSemPost(&slave_msg_sem,OS_OPT_POST_ALL,&err);
// }
}
if(USART_GetITStatus(USART1,USART_IT_TXE)!=RESET) //发送数据寄存器空中断
{
tx1_num++;
if(tx1_num<tx1_nums)
{
USART_SendData(USART1,tx1_dat[tx1_num]);
}
else
{
tx1_num=0;
USART_ITConfig(USART1,USART_IT_TXE,DISABLE);
USART_ITConfig(USART1,USART_IT_TC,ENABLE);
}
}
if(USART_GetITStatus(USART1,USART_IT_TC)!=RESET)
{
USART_ClearITPendingBit(USART1,USART_IT_TC);
USART_ITConfig(USART1,USART_IT_TC,DISABLE);
}
OSIntExit(); /* Tell uC/OS-III that we are leaving the ISR */
}[/mw_shl_code] |
|