久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3735|回復: 0
打印 上一主題 下一主題
收起左側

基于STM32F407的串口驅動程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:330391 發表于 2018-10-11 13:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "usart1.h"//自身的頭文件


/*******************
函數名: USART1_init
函數返回值: 無
函數參數: U32 bound:設置的botelv
函數功能: 實現USART1的初始化函數
函數描述:

********************/
void USART1_init(u32 bound)
{
        float USARTDIV;
        u32 DIV_Mantivssa = 0;
        u32 DIV_Fraction = 0;
        u8 over8 = 0;
       
        /****IO口的配置******/
        RCC->AHB1ENR |= (0x1<<0);
        GPIOA->MODER &= ~(0xf<<18);
        GPIOA->MODER |=(0xa<<18);    //選擇復用功能
        GPIOA->AFR[1] &=~(0xff<<4);  //清零
        GPIOA->AFR[1] |=(0x77<<4);   //選擇USART1 復用
       
        /*****串口驅動配置***********/
        RCC->APB2ENR |= (0x1<<4);  //打開串口時鐘
        USART1->CR1  |= (0x1<<13);
        USART1->CR1  &= ~(0x1<<10);
        USART1->CR1  &= ~(0x1<<0);
        USART1->CR1  |= (0x1<<3);  //打開發送器
        USART1->CR1  |= (0x1<<2);  //打開接收器
       
        /*******波特率的配置********/
        #ifdef  OVER8   //采用8倍采樣
                USART1->CR1 |= (0x1<<15);
                over8 = 1;
       
        #else          //采用16倍采樣
                USART1->CR1 &= ~(0x1<<15);
                over8 = 0;
       
        #endif
       
        USARTDIV=(float)84000000/((8*(2-over8))*bound);
        DIV_Mantivssa = USARTDIV;
       
        DIV_Fraction=(USARTDIV-DIV_Mantivssa)*(8*(2-over8));
       
        USART1->BRR = (DIV_Mantivssa<<4 | DIV_Fraction);  //寫入計算好的小數波特率
}

//串口發送函數
void USART1_sendbyte(u8 data)
{
                        //等待數據發送完成
                        while((USART1->SR & (0x1<<6))==0);
                        //發送該次數據
                        USART1->DR = data;
                               
}

//串口接收函數
u8 USART1_recbyte(void)
{
                        u8 data = 0;
       
                        //等待數據接收完成
                        while((USART1->SR & (0x1<<5))==0);
                        //接收該次數據
                        data = USART1->DR;
       
                        return data;                               
}







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜桃视频在线观看免费视频网站www | 欧美日韩成人影院 | 中文字幕一区二区三区在线观看 | 日本不卡视频在线播放 | 久久精品| 欧美性猛交一区二区三区精品 | 日本一区二区高清不卡 | 国产精品视频不卡 | 国精品一区 | 国产一区二区三区欧美 | 亚洲精品视频一区 | 国产精品99久久久精品免费观看 | 精品国产欧美 | 免费看黄色片 | 极品在线| 久久精品视频免费观看 | 国产一区二区毛片 | 超碰日本| 97国产爽爽爽久久久 | 久久综合久久久 | 国产美女精品视频 | 免费麻豆视频 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 久久久久久国产精品免费 | 麻豆av网站| 日韩精品一区二区三区在线观看 | 国产精品美女久久久久久免费 | 亚洲网站在线观看 | 国产精品视屏 | 国产精品久久久久久久久久久久久久 | 成人亚洲性情网站www在线观看 | 亚洲福利一区二区 | 精品欧美一区二区三区久久久 | 久www | 日韩高清一区 | 欧美精品 在线观看 | 自拍偷拍中文字幕 | 国产2区| 国产成人精品一区二 | 日韩av在线一区 | 羞羞视频免费在线 |