欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STM32學習之USART(串口通信) [打印本頁]

作者: xiaos    時間: 2015-4-10 17:36
標題: STM32學習之USART(串口通信)
void USART1_Configuration()//設置USART1

{
       GPIO_InitTypeDef      GPIO_InitStructure;//設置GPIO口用的結構體
       USART_InitTypeDef    USART_Init_Structure;//設置USART的結構體
       GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//這個管腳接TXD
       GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//選擇復用推挽式輸出
       GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHZ;
       GPIO_Init(GPIOA,&GPIO_InitStructure);
       GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//這個管腳接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;//設置波特率(每秒鐘傳輸的位數)
       USART_Init_Structure.USART_StopBits=USART_StopBits_1;//選擇停止位 1
       USART_Init_Structure.USART_Party=UART_Party_No;//不用奇偶校驗
USART_Iinit_Structure_USART_HardwareFlowcontrol=USART_HardwareFlowcontrol_None;//不使用硬件流控制
       USART_InitStructure_USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//選擇USART的接收和發送使能
       USART_Init(USART1,&USART_InitStructure);
       USART_Cmd(USART1,ENABLE);//使能USART1;
}
經過這樣的設置USART1就可以用了 使用USART_SendData(USART1,待發送數據);
也可以使用重映射過的 printfh 函數來發送數據.
重映射過程如下
Int fputc(intch,FILE *f)//需要添加 stdio.h 頭文件
{
       USART_SendData(USART1,ch);
        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//這段話表示如果發送數據沒有結束 就聽在這里等待
}      
經過以上的配置可以發送和接受數據 但是不能產生USART中斷
需要USART中斷可以 這樣設置
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);
}







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1