串口選擇
示例給出的是串口的,因為今天回老家,帶的杜綁線是公對母的,不能接串口1,所以選擇串口2,即PA2--TX,PA3--RX。
初始化串口
- 初始化UART2的時鐘:__RCC_UART2_CLK_ENABLE();
- 初始化GPIOA外設時鐘:RCC_AHBPeriphClk_Enable( RCC_AHB_PERIPH_GPIOA, ENABLE);
- 復用PA2為UART2TX: PA02_AFx_UART2TXD();
- 復用PA3為UART2RX:PA03_AFx_UART2RXD();
- 初始化PA2為高速輸出模式:
GPIO_InitStructure.Pins = GPIO_PIN_2; //PA2
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
- 初始化PA3為上拉輸入:
GPIO_InitStructure.Pins = GPIO_PIN_3; //PA3
GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
- 初始化UART2配置為9600波特率:
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_Over = USART_Over_16;
USART_InitStructure.USART_Source = USART_Source_PCLK;
USART_InitStructure.USART_UclkFreq = 64000000;
USART_InitStructure.USART_StartBit = USART_StartBit_FE;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(CW_UART2, &USART_InitStructure);
- 使能中斷輸入
//使能UARTx RC中斷
USART_ITConfig(CW_UART2, USART_IT_RC, ENABLE);
//優(yōu)先級,無優(yōu)先級分組
NVIC_SetPriority(UART2_IRQn, 0);
//UARTx中斷使能
NVIC_EnableIRQ(UART2_IRQn);
- 中斷接收函數(shù),主要功能為判斷接收到的第一位是否為0,第二位是否為1,如果總接收長度為4位,測翻轉LED4,具體代碼如下:
void UART2_IRQHandler(void)
{
/* USER CODE BEGIN */
unsigned char TxRxBuffer;
if(USART_GetITStatus(CW_UART2, USART_IT_RC) != RESET)
{
USART_ClearITPendingBit(CW_UART2, USART_IT_RC);
TxRxBuffer = USART_ReceiveData_8bit(CW_UART2);
rec[re_count]=TxRxBuffer;
if (re_count == 0&&rec[0]==0x00)
{
rev_start=1;
re_count++;
}
else if(rev_start==1)
{
if(re_count==1&&rec[1]!=0x01)
{
re_count=0;rev_start=0;
}
else if(re_count==4) //計算總個數(shù),0-4
{check_flag=1;re_count=0;rev_start=0;} //如果對,那么將標志位置1,并清除里面的值從新接收
else
re_count++;
}
}
/* USER CODE END */
}
實現(xiàn)效果,下載后,串口接收到0x00 0x01 0x02 0x03 ,HEX發(fā)送00 01 02 03 可以實現(xiàn)LED4的翻轉:
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
串口
+關注
關注
14文章
1527瀏覽量
75202 -
uart
+關注
關注
22文章
1180瀏覽量
100691 -
開發(fā)板
+關注
關注
25文章
4704瀏覽量
95749 -
GPIO
+關注
關注
16文章
1164瀏覽量
51402 -
CW32
+關注
關注
1文章
148瀏覽量
451 -
武漢芯源
+關注
關注
1文章
62瀏覽量
194
發(fā)布評論請先 登錄
相關推薦
【CW32飯盒派開發(fā)板試用體驗】+機械臂游戲項目(開源)(1)開箱試驗舵機
我很高興能得到 CW32飯盒派開發(fā)板試用體驗機會,想利用業(yè)余時間,做個機械臂游戲項目,用咱們的這個開發(fā)板
發(fā)表于 04-28 20:10
【CW32飯盒派開發(fā)板試用體驗】+機械臂游戲項目(開源)(4)多加點東西
接上三篇,繼續(xù)本項目開發(fā)。【CW32飯盒派開發(fā)板試用體驗】+機械臂游戲項目(開源)(1)開箱試驗
發(fā)表于 05-08 18:40
【CW32飯盒派開發(fā)板試用體驗】開發(fā)板簡單介紹及初體驗
今天開箱一款基于CW32F030C8T6的開發(fā)板,開發(fā)板命名為CW32飯盒派。
下面簡單的對
發(fā)表于 05-22 10:47
【CW32飯盒派開發(fā)板試用體驗】開發(fā)板簡單介紹和開發(fā)板初體驗
今天開箱一款基于CW32F030C8T6的開發(fā)板,開發(fā)板命名為CW32飯盒派。
下面簡單的對
發(fā)表于 05-22 10:56
【CW32飯盒派開發(fā)板試用體驗】CW32F030C8T6的開發(fā)板開箱視頻
今天將收到的CW32F030C8T6的開發(fā)板-CW32飯盒派開發(fā)板做個開箱視頻。
發(fā)表于 05-22 11:03
【CW32飯盒派開發(fā)板試用體驗】+機械臂游戲項目(開源)(5)加紅外游戲操控機
接上幾篇:
【CW32飯盒派開發(fā)板試用體驗】+機械臂游戲項目(開源)(1)開箱試驗舵機 - 武漢芯源MCU - 電子技術論壇 - 廣受歡迎的
發(fā)表于 05-24 22:27
【CW32飯盒派開發(fā)板試用體驗】開箱上電
昨天收到了CW32飯盒派開發(fā)板啦,今天來分享一下。開發(fā)板采用透明的塑料盒裝載,大小適中,非常像一次性飯盒
發(fā)表于 05-27 23:32
【CW32飯盒派開發(fā)板試用體驗】+開箱+軟件
感謝 發(fā)燒友學院以及武漢芯源半導體有限公司提供產品## 芯源CW32飯盒派開發(fā)板。
打開快遞封裝的外包裹袋,里面有一個塑料盒子。打開后是CW32
發(fā)表于 05-29 08:41
【CW32飯盒派開發(fā)板試用體驗】+初識CW32飯盒派開發(fā)板
盼星星,盼月亮,終于收到了CW32飯盒派開發(fā)板。回想起那天答復參加活動郵件發(fā)出去的那一刻,就在期盼。
以前也了解過CW32單片機,這是一款非
發(fā)表于 05-29 15:51
【CW32飯盒派開發(fā)板試用體驗】1-開箱感受
本次成功申請CW32飯盒派開發(fā)板試用,十分榮幸,首先感謝電子發(fā)燒友論壇提供的活動平臺和試用機
發(fā)表于 06-01 00:26
評論