【Ubuntu VSCODE+GCC】CW32L031實現(xiàn)UART控制LED
【目的】實現(xiàn)UART發(fā)送命令控制板載LED燈
(資料圖片僅供參考)
一、復(fù)制一份工種到新的文件夾:sudo cp -r cw32l031_uart cw32l031_uart_iqr,然后給新的文件夾賦予讀寫權(quán)限:sudo chmod 777 -R cw32l031_uart_iqr/
二、用VSCode打開該工程文件夾
三、在usre_uart.c中增加中斷的配置
NVIC_SetPriority(UART1_IRQn, 0); //優(yōu)先級,無優(yōu)先級分組
NVIC_EnableIRQ(UART1_IRQn); //UARTx中斷使能
四、修改中斷函數(shù)
主要的思路是:
1、如果進入了中斷,首先判斷是不是UART1的接收中斷,如果是則接收一個字節(jié)數(shù)的數(shù)據(jù)。
2、如果接收超過了最長長度,則計數(shù)歸零,如果接收到了’\\n’說明接收一次數(shù)據(jù)完成,更新標志位。
3、清除接收標志位。
void UART1_IRQHandler(void)
{
/* USER CODE BEGIN */if(USART_GetITStatus(CW_UART1, USART_IT_RC) != RESET) // 獲取UARTx中斷標志位{ rx_buff[rx_cnt] = USART_ReceiveData_8bit(CW_UART1); //如果接收達到上限,則回到0 if(rx_buff[rx_cnt] == "\\n") { rx_state = 1; } if(rx_cnt < UART_RX_MAX_LEN) { rx_cnt ++; } else { rx_cnt = 0; } USART_ClearITPendingBit(CW_UART1, USART_IT_RC);}/* USER CODE END */}
五、要main主函數(shù)中,我們判斷是否接收完數(shù)據(jù),如果接收完數(shù)據(jù),則進來判斷,如果是LED_ON則點亮LED燈,如果是LED_OFF則關(guān)斷LED燈。
Main主函數(shù)代碼如下:
int main(void)
{
LED_Init();LogInit();USART_ITConfig(CW_UART1, USART_IT_RC, ENABLE);InitTick(24000000ul); //初始化SysTick// 開啟兩線調(diào)試接口RCC_SWDIO_Config(RCC_SYSCTRL_SWDIOEN);printf("start\\r\\n");while (1){ if(rx_state == 1) { printf("recv: %s\\r\\n", rx_buff); rx_state = 0; rx_cnt = 0; if (rx_buff[0] == "L" && \\ rx_buff[1] == "E" && \\ rx_buff[2] == "D" && \\ rx_buff[3] == "_" && \\ rx_buff[4] == "O" && \\ rx_buff[5] == "N" ) { GPIO_WritePin(CW_GPIOC, GPIO_PIN_13, GPIO_Pin_RESET); } else if (/* condition */rx_buff[0] == "L" && \\ rx_buff[1] == "E" && \\ rx_buff[2] == "D" && \\ rx_buff[3] == "_" && \\ rx_buff[4] == "O" && \\ rx_buff[5] == "F" && \\ rx_buff[6] == "F" ) { GPIO_WritePin(CW_GPIOC, GPIO_PIN_13, GPIO_Pin_SET); } memset(rx_buff, 0, UART_RX_MAX_LEN); } // GPIO_TogglePin(CW_GPIOC, GPIO_PIN_13); SysTickDelay(10);}return 0;}
實驗效果,發(fā)送LED_ON板載的LED亮,發(fā)送LED_OFF板載的LED關(guān)斷。同時打印出發(fā)送的內(nèi)容。
審核編輯:湯梓紅
標簽:
相關(guān)閱讀
-
【Ubuntu VSCODE+GCC】CW32L031實現(xiàn)UART控制LED
ubuntu系統(tǒng)下面使用vscode使用串口驅(qū)動實現(xiàn)對板載LED燈的控制。 -
T&G全球有限公司積極耕耘中國市場 保護...
中國農(nóng)科新聞網(wǎng)是農(nóng)業(yè)科技報社順應(yīng)網(wǎng)絡(luò)時代新媒體發(fā)展趨勢,在三農(nóng)領(lǐng)域 -
龍元建設(shè)(600491)龍虎榜數(shù)據(jù)(06-28)
滬深交易所2023年06月28日公布的交易公開信息顯示,龍元建設(shè)因成為當(dāng)日 -
信用中國上的公司訴訟記錄怎么消除_每日...
關(guān)于信用修復(fù)的理解,目前主要分為兩種:一種認為信用修復(fù)是信用行 -
環(huán)球熱消息:隴東學(xué)院召開“三抓三促”...
6月27日,隴東學(xué)院召開“三抓三促”行動工作推進會。黨委委員、紀委... -
全球觀察:小車間,大幫扶!椿樹這個村...
中國農(nóng)科新聞網(wǎng)是農(nóng)業(yè)科技報社順應(yīng)網(wǎng)絡(luò)時代新媒體發(fā)展趨勢,在三農(nóng)領(lǐng)域







