找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3416|回復(fù): 0
收起左側(cè)

STM32學(xué)習(xí)之USART(串口通信)

[復(fù)制鏈接]
ID:75926 發(fā)表于 2015-4-10 17:36 | 顯示全部樓層 |閱讀模式
void USART1_Configuration()//設(shè)置USART1

{
       GPIO_InitTypeDef      GPIO_InitStructure;//設(shè)置GPIO口用的結(jié)構(gòu)體
       USART_InitTypeDef    USART_Init_Structure;//設(shè)置USART的結(jié)構(gòu)體
       GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//這個(gè)管腳接TXD
       GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//選擇復(fù)用推挽式輸出
       GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHZ;
       GPIO_Init(GPIOA,&GPIO_InitStructure);
       GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//這個(gè)管腳接RXD
       GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//選擇浮空輸入
       GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHZ;
       GPIO_Init(GPIOA,&GPIO_InitStructure);
       USART_Init_Structure.USART_BaudRate=9600;//設(shè)置波特率(每秒鐘傳輸?shù)奈粩?shù))
       USART_Init_Structure.USART_StopBits=USART_StopBits_1;//選擇停止位 1
       USART_Init_Structure.USART_Party=UART_Party_No;//不用奇偶校驗(yàn)
USART_Iinit_Structure_USART_HardwareFlowcontrol=USART_HardwareFlowcontrol_None;//不使用硬件流控制
       USART_InitStructure_USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//選擇USART的接收和發(fā)送使能
       USART_Init(USART1,&USART_InitStructure);
       USART_Cmd(USART1,ENABLE);//使能USART1;
}
經(jīng)過這樣的設(shè)置USART1就可以用了 使用USART_SendData(USART1,待發(fā)送數(shù)據(jù));
也可以使用重映射過的 printfh 函數(shù)來發(fā)送數(shù)據(jù).
重映射過程如下
Int fputc(intch,FILE *f)//需要添加 stdio.h 頭文件
{
       USART_SendData(USART1,ch);
        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//這段話表示如果發(fā)送數(shù)據(jù)沒有結(jié)束 就聽在這里等待
}      
經(jīng)過以上的配置可以發(fā)送和接受數(shù)據(jù) 但是不能產(chǎn)生USART中斷
需要USART中斷可以 這樣設(shè)置
voidNVIC_Configuration()
{
       NVIC_InitTypeDef       NVIC_InitStructure;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
       NVIC_InitStructure.IROChannel=USART1_IRQn;
       NVIC_InitStructure.IRQChannelPreemPtionPriority=0;
       NVIC_InitStructure.IRQChannelSubPriority=0;
       NVIC_InitStructure.IPQChannelCmd=ENABLE;
       NVIC_Init(&NVIC_InitStructure);
}


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表