#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);//無資料時死回圈,有資料時進中斷收資料發資料完了再讀主程式
}
uj5u.com熱心網友回復:
你在配置串口的時候應該開啟一下復用功能時鐘uj5u.com熱心網友回復:
接收完成后,設定一個標志位,然后在主回圈中再把接收到的資料發送出去uj5u.com熱心網友回復:
問題現象呢 串口收發無須打開復用時鐘 因為已經設定復用推挽輸出了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/114314.html
標籤:單片機/工控
上一篇:SIM卡驅動開發求助
