找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

stm32串口通信

[復(fù)制鏈接]
ID:80321 發(fā)表于 2016-2-21 21:08 | 顯示全部樓層 |閱讀模式
前面對(duì)于IO口由于外面資料很多,只是寫(xiě)了一些自己的感想,僅此而已,沒(méi)有別的意思。

       今天想了很久才寫(xiě)自己才開(kāi)始寫(xiě),寫(xiě)的不好,大家可以指出,我也好改進(jìn)。

       對(duì)于單片機(jī)最基礎(chǔ)了出了IO口,就是通信方式了,說(shuō)的通信方式不得不想到串口通信。

       我自己是學(xué)習(xí)探索者stm32f4的,這里我就分享自己的感想和自己的問(wèn)題。


       對(duì)于外設(shè)的使用首先必然是時(shí)鐘的使能。

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//USART時(shí)鐘使能
       RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//IO時(shí)鐘使能

       然后就是把IO復(fù)用

       GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
       GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);


      接下來(lái)就是初始化,在這里我遇到了一個(gè)問(wèn)題
           GPIO_InitTypeDef   GPIO_InitStructure;

           GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//復(fù)用模式
           GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
           GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
           GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
           GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
           GPIO_Init(GPIOA,&GPIO_InitStructure);
    上面是探索者的程序
      可是這樣寫(xiě)就不行
          GPIO_InitTypeDef   *GPIO_InitStructure;

           GPIO_InitStructure->GPIO_Mode=GPIO_Mode_AF;//復(fù)用模式
           GPIO_InitStructure->GPIO_OType=GPIO_OType_PP;
           GPIO_InitStructure->GPIO_Pin=GPIO_Pin_9;
           GPIO_InitStructure->GPIO_PuPd=GPIO_PuPd_UP;
           GPIO_InitStructure->GPIO_Speed=GPIO_Speed_100MHz;
           GPIO_Init(GPIOA,GPIO_InitStructure);
   個(gè)人c語(yǔ)言能力有限,如果有人知道,請(qǐng)指出


       然后就是串口相關(guān)的初始化
            設(shè)置波特率,奇偶校驗(yàn),停止位等
        USART_InitStructure.USART_BaudRate=115200;
            USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
            USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
            USART_InitStructure.USART_Parity=USART_Parity_No;
            USART_InitStructure.USART_StopBits=USART_StopBits_1;
            USART_InitStructure.USART_WordLength=USART_WordLength_8b;
       
                  USART_Init(USART1,&USART_InitStructure);


        使用它必然要使能串口
          USART_Cmd(USART1,ENABLE);//使能串口

         這樣串口的基本配置就完成了

        單片機(jī)嵌入式技術(shù)交流 511426545



             

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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