STM32基本的串口通信調試實驗,實驗現象:發送內容在串口調試助手上顯示。
單片機源程序如下:
- #include "stm32f10x.h"
- void My_USART1_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStrue;//定義IO接口結構體
- USART_InitTypeDef USART_InitStrue;//定義串口相關結構體
- NVIC_InitTypeDef NVIC_InitStrue;//定義中斷相關結構體
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//初始化GPIOA時鐘
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//初始化串口USART時鐘
-
- GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;//推挽復用輸出
- GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9;//開啟9號IO口
- GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;//端口速度10MHz
- GPIO_Init(GPIOA,&GPIO_InitStrue);//GPIOA9初始化
-
- GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空輸入
- GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10;//開啟10號IO口
- GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;//端口速度10MHz
- GPIO_Init(GPIOA,&GPIO_InitStrue);//GPIO10初始化
-
- USART_InitStrue.USART_BaudRate=115200;//串口波特率設置
- USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//無硬件流
- USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//發送,接收使能
- USART_InitStrue.USART_Parity=USART_Parity_No;//無奇偶校驗
- USART_InitStrue.USART_StopBits=USART_StopBits_1;//停止位為1
- USART_InitStrue.USART_WordLength=USART_WordLength_8b;//字長8位
- USART_Init(USART1,&USART_InitStrue);//USART1初始化
- USART_Cmd(USART1,ENABLE);//使能串口1
-
- USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//中斷配置:開啟接收中斷(接受緩存器非空使能,ENABLE)
- NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;//定義中斷通道
- NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;//開啟中斷通道
- NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;//設定搶占優先級為1
- NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;//設定子優先級為1
- NVIC_Init(&NVIC_InitStrue);//中斷初始化
- }
- void USART1_IRQHandler(void)//編寫中斷處理函數
- {
- u8 res;//無符號字符res
-
- if(USART_GetITStatus(USART1,USART_IT_RXNE))//接收數據進入中斷,判斷串口1接收緩存器非空使能為1與否
- {
- res= USART_ReceiveData(USART1); //為1,則將串口1的數據給變量
- USART_SendData(USART1,res); //繼續將此數據從USART1發送出去
- }
- }
-
- int main(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設定優先級分組為2,2位搶占2位響應
- My_USART1_Init();//調用串口函數
- while(1);//無數據時死循環,有數據時進中斷收數據發數據完了再讀主程序
-
- }
復制代碼
所有資料51hei提供下載:
串口通信.rar
(286.91 KB, 下載次數: 277)
2018-7-6 04:01 上傳
點擊文件名下載附件
|