當前位置:編程學習大全網 - 網站源碼 - ucos iii 串口發送用什麽信號量

ucos iii 串口發送用什麽信號量

可以參考下面的例子:

//通過信號量的方法發送數據

void?usart1SendData(CPU_INT08U?ch)

{

OS_ERR?err;

CPU_INT08U?isTheFirstCh;

OSSemPend(&Usart1Sem,?0,?OS_OPT_PEND_BLOCKING,?NULL,?&err);//阻塞型等待串口發送資源

OSSemPend(&Usart1TxBufSem,?0,?OS_OPT_PEND_BLOCKING,?NULL,?&err);//阻塞型等待發送

isTheFirstCh?=?0;

if(pTxBufRead?==?pTxBufWrite){?//若讀指針等於寫指針,表明要寫入緩沖區的為當前第壹個數據

isTheFirstCh?=?1;?//置位第壹個數據標誌

}

*pTxBufWrite?=?ch;//向當前寫指針對應的地址寫入數據

if((pTxBufWrite++)?==?&Usart1TxBuf[USART1_TX_BUFFER_LEN?-?1]){?//若當前寫指針寫到緩沖區最後壹個地址,否則地址自增1

pTxBufWrite?=?Usart1TxBuf;?//寫指針更新為緩沖區第壹個地址,環形隊列

}

if(isTheFirstCh){?//寫入的是第壹個數據

USART_ITConfig(USART1,?USART_IT_TXE,?ENABLE);//開啟緩沖區發送空中斷,下壹步將會進入中斷處理數據

}

OSSemPost(&Usart1Sem,?OS_OPT_POST_1,?&err);

}

  • 上一篇:壹休哥 hero引擎的雙倍經驗能不能讓他下線再上線還繼續計時啊
  • 下一篇:c語言中的strcat是什麽意思啊?
  • copyright 2024編程學習大全網