新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32串口通信和I/O口簡單代碼

        STM32串口通信和I/O口簡單代碼

        作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
        #include
        #include "sys.h"
        #include "delay.h"
        #include "usart.h"
        #include "led.h"



        int main(void)
        {
        u8 k; //點亮的燈位數(shù)
        u8 i;
        Stm32_Clock_Init(9); //系統(tǒng)時鐘初始化
        delay_init(72); //延時初始化
        uart_init(72,9600); //串口初始化
        led_init(); //燈I/O配置初始化
        while(1)
        {
        if(USART_RX_STA&0x80) //接受到數(shù)據(jù)判斷
        {
        printf("you send massage is :");
        for(i=0;i<(USART_RX_STA&0x3f);i++)
        {
        USART1->DR=USART_RX_BUF[i]; //把接受到的數(shù)據(jù)傳給電腦
        k=USART_RX_BUF[2]-0x30; //接受到要開發(fā)的燈泡值
        }
        USART_RX_STA=0; //接受位清零
        }
        if(k==1)LED1=0; //判斷點亮那個燈
        if(k==2)LED2=0;
        if(k==3)LED3=0;
        if(k==4)LED4=0;
        if(k==5)LED5=0;
        if(k==6)LED6=0;
        if(k==7)LED7=0;
        if(k==8)LED8=0;

        }
        }

        //-------------------------------------燈配置庫函數(shù)---------------

        #include
        #include "led.h"


        void led_init()
        {
        RCC->APB2ENR|=1<<3; //時能PORTB時鐘
        GPIOB->CRL&=0x00000000; //清空寄存器值
        GPIOB->CRL|=0x33333333; //推挽輸出
        GPIOB->ODR=0xffff;

        }


        #ifndef _led_h
        #define _led_h


        void led_init(void);
        #define LED1 PBout(0)
        #define LED2 PBout(1)
        #define LED3 PBout(2)
        #define LED4 PBout(3)
        #define LED5 PBout(4)
        #define LED6 PBout(5)
        #define LED7 PBout(6)
        #define LED8 PBout(7)

        #endif



        關(guān)鍵詞: STM32串口通信IO

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 扶风县| 江北区| 秀山| 南召县| 枣阳市| 五家渠市| 安多县| 晋州市| 砚山县| 平谷区| 徐汇区| 遂昌县| 调兵山市| 翁源县| 通江县| 日土县| 元谋县| 天镇县| 康乐县| 岑溪市| 泽普县| 海宁市| 台东县| 都匀市| 怀集县| 江都市| 大石桥市| 仙居县| 子洲县| 辉县市| 英超| 渝中区| 扬州市| 巴青县| 静海县| 梅河口市| 郯城县| 临漳县| 安平县| 浑源县| 乌拉特后旗|