a)目的:在基礎實驗成功的基礎上,對串口的調試方法進行實踐。硬件代碼順利完成之后,對日后調試需要用到的printf重定義進行調試,固定在自己的庫函數中。b)初始化函數定義:
本文引用地址:http://www.104case.com/article/201611/322074.htmvoid USART_Configuration(void);//定義串口初始化函數
c)初始化函數調用:
void UART_Configuration(void);//串口初始化函數調用
初始化代碼:
void USART_Configuration(void)//串口初始化函數
{
//串口參數初始化
USART_InitTypeDef USART_InitStructure;//串口設置恢復默認參數
//初始化參數設置
USART_InitStructure.USART_BaudRate=9600;//波特率9600
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長8位
USART_InitStructure.USART_StopBits = USART_StopBits_1;//1位停止字節(jié)
USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//打開Rx接收和Tx發(fā)送功能
USART_Init(USART1, &USART_InitStructure);//初始化
USART_Cmd(USART1, ENABLE);//啟動串口
}
RCC中打開相應串口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);
GPIO里面設定相應串口管腳模式
//串口1的管腳初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;//管腳9
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_Init(GPIOA, &GPIO_InitStructure);//TX初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//管腳10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入
GPIO_Init(GPIOA, &GPIO_InitStructure);//RX初始化
d)簡單應用:
發(fā)送一位字符
USART_SendData(USART1,數據);//發(fā)送一位數據
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){}//等待發(fā)送完畢
接收一位字符
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){}//等待接收完畢
變量= (USART_ReceiveData(USART1));//接受一個字節(jié)
發(fā)送一個字符串
先定義字符串:char rx_data[250];
然后在需要發(fā)送的地方添加如下代碼
int i;//定義循環(huán)變量
while(rx_data!=
主站蜘蛛池模板:
孟津县|
大关县|
蓬溪县|
遂宁市|
新昌县|
琼中|
扬中市|
六枝特区|
怀集县|
泾川县|
嘉荫县|
长宁县|
景德镇市|
荥经县|
唐山市|
长治市|
武乡县|
体育|
保德县|
永年县|
固原市|
民勤县|
绵竹市|
黔西县|
资兴市|
丹阳市|
阿合奇县|
大足县|
瑞安市|
黎城县|
巴南区|
松阳县|
论坛|
仁布县|
深泽县|
婺源县|
巴塘县|
娄烦县|
扶绥县|
普陀区|
都昌县|