AD+DMA+USART實驗中的收穫和總結
阿新 • • 發佈:2018-11-30
- 由於實驗室用的是USART3介面,但是在基地實驗時,由於沒有RS232,只能換到USART1,進行實驗。(在交作業的時候,記得要再換回去)
在這個過程中,遇到困難,用串列埠軟體傳送資料時無響應,應該意味著我的資料沒有發成功。
仔細排查,發現,由串列埠1到串列埠3,需要改動以下部分。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//USART1 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART1, ENABLE);//USART3
//---- USART1_TX PA9 ----------------USART_GPIO_Init.GPIO_Pin = GPIO_Pin_9; USART_GPIO_Init.GPIO_Speed = GPIO_Speed_50MHz; USART_GPIO_Init.GPIO_Mode = GPIO_Mode_AF_PP; //複用推輓輸出 GPIO_Init(GPIOA, &USART_GPIO_Init); //初始化PA9 //-----USART1_RX PA10 ------------- USART_GPIO_Init.GPIO_Pin = GPIO_Pin_10; USART_GPIO_Init.GPIO_Mode= GPIO_Mode_IN_FLOATING; //浮空輸入 GPIO_Init(GPIOA, &USART_GPIO_Init); //初始化PA10 //---------------------------------------------------------------------------------- //---- USART3_TX PB10 ---------------- USART_GPIO_Init.GPIO_Pin = GPIO_Pin_10; USART_GPIO_Init.GPIO_Speed = GPIO_Speed_50MHz; USART_GPIO_Init.GPIO_Mode= GPIO_Mode_AF_PP; //複用推輓輸出 GPIO_Init(GPIOB, &USART_GPIO_Init); //初始化PA9 //-----USART3_RX PB11 ------------- USART_GPIO_Init.GPIO_Pin = GPIO_Pin_11; USART_GPIO_Init.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入 GPIO_Init(GPIOB, &USART_GPIO_Init); //初始化PA10
USART1需要配置PA9及PA10
由於USART屬於可選功能項
所以TX要設定成GPIO_Mode_AF_PP;,即複用推輓輸出
RX用於資料輸入,被設定成浮空輸入
USART2同理。
- 在使用TIM的時候要在RCCset函式中開啟使能
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);