历史上的今天
返回首页

历史上的今天

今天是:2024年12月17日(星期二)

正在发生

2018年12月17日 | STM32串口寄存器库函数配置方法

2018-12-17 来源:eefocus

1、参考资料


      《STM32F1开发指南-库函数版本》- 5.3 usart串口文件夹介绍

                                    -第9章 串口实验


      《STM32中文参考手册V10》-第25章通用同步异步收发器(USART)


2、串口通信基本原理


        ·常用的串口相关寄存器


           ·USART_SR状态寄存器


           ·USART_DR数据寄存器


           ·USART_BRR波特率寄存器

           

   ·串口操作相关寄存器(省略入口参数):


      void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能

            void USART_Cmd();//使能串口

            void USART_ITConfig();//使能相关中断


            void USART_SendData();//发送数据到串口,DR

            uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据


            FlagStatus USART_GetFlagStatus();//获取状态标志位

            void USART_ClearFlag();//清除状态标志位

            ITStatus USART_GetITStatus();//获取中断状态标志位

            void USART_ClearITPendingBit();//清除中断状态标志位


   ·状态寄存器(USART_SR)



      FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);


   ·数据寄存器(USART_DR)

      

      

      void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

            uint16_t USART_ReceiveData(USART_TypeDef* USARTx);


·波特率寄存器(USART_BRR)

     

     

     void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);


   ·波特率计算方法

     

     

·硬件连接

PA9、PA10(串口1)连接到了USB串口电路

       

       

3.串口配置的一般步骤

  

  ①串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();


        ②串口复位:USART_DeInit(); 这一步不是必须的


        ③GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP


        ④串口参数初始化:USART_Init();


        ⑤开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)

              NVIC_Init();

              USART_ITConfig();


        ⑥使能串口:USART_Cmd();


        ⑦编写中断处理函数:USARTx_IRQHandler();


        ⑧串口数据收发:

        void USART_SendData();//发送数据到串口,DR

        uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据


        ⑨串口传输状态获取:


        FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);


        void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);


推荐阅读

史海拾趣

全志(Allwinner)公司的发展小趣事

2010年,平板电脑市场的崛起为全志科技带来了巨大的发展机遇。全志迅速调整产品策略,推出了AP处理器A系列,成功抓住了这一市场风口。其芯片产品在平板电脑领域的应用,不仅提升了公司的市场份额,也为公司的未来发展奠定了坚实的基础。

HIT(日立)公司的发展小趣事
选择具有良好性能和可靠性的元件,确保电路在长时间使用过程中不易损坏。
AZ Displays公司的发展小趣事

随着公司规模的扩大和市场份额的提升,AZ Displays开始实施全球化战略。公司在全球范围内建立销售网络和分支机构,积极开拓国际市场。通过与国际知名企业的合作,AZ Displays成功将产品打入国际市场,进一步提升了公司的品牌影响力和市场竞争力。

Amveco Toroidal Power Products公司的发展小趣事

随着电子行业的快速发展,客户对环形变压器的性能要求也越来越高。Amveco公司敏锐地捕捉到了这一市场变化,加大了在技术创新和产品升级上的投入。公司研发团队不断攻克技术难关,成功开发出了一系列具有更高效率、更低损耗的环形变压器产品,满足了客户对高性能产品的需求。同时,公司还不断优化生产工艺,提高了产品的可靠性和稳定性。

FEMA Electronics Corporation公司的发展小趣事

FEMA始终将产品质量视为企业的生命线。为了确保产品质量的稳定可靠,公司建立了一套完善的质量管理体系,并引进了先进的生产设备和技术。同时,FEMA还注重员工的培训和素质提升,确保每一个生产环节都能达到最高的质量标准。正是凭借这种对品质的执着追求,FEMA的产品在市场上赢得了良好的口碑和声誉,逐渐成为了行业内的知名品牌。

CALMIRCO公司的发展小趣事

CALMIRCO公司自成立以来,一直致力于电子技术的研发与创新。在公司发展初期,CALMIRCO团队便成功研发出一款具有划时代意义的智能芯片,该芯片在性能和稳定性上均达到行业领先水平。这一技术突破不仅为CALMIRCO公司赢得了大量市场份额,更推动了整个电子行业的进步。此后,CALMIRCO公司继续加大研发投入,不断推出创新产品,引领行业变革。

问答坊 | AI 解惑

发个nrf24l01的资料加使用电路图 PCB图

买的的nrf24l01 做了个板子 调试了一下,是成功了的!!程序没传上来,有兴趣根据资料修改修改就可以啦!! 大家多多交流!!…

查看全部问答>

收集到的LED点阵控制Proteus仿真实例

新手大家多支持啊,,,,,见笑了…

查看全部问答>

Windows CE在指纹传感器设备驱动程序开发中的应用.pdf

Windows CE在指纹传感器设备驱动程序开发中的应用.pdf…

查看全部问答>

请问一个模拟电路问题

请问在基本共射放大电路里面U0=-Ic(Rc//Rl)这个式子如何来的?Rc,Rl中应该没有电流通过啊?谢谢…

查看全部问答>

I2CSB问题....有图有真相.....

下载 (56.37 KB) 2010-6-6 17:04 各种位都设好了 就是不进中断 哪位好心人帮帮俺....困扰好几天了…

查看全部问答>

南华大学黄智伟系列--如何设计运算放大器的PCB

本帖最后由 paulhyde 于 2014-9-15 04:10 编辑 1.考虑了寄生参数的运算放大器电路 一个典型的运算放大器电路如图1(a)所示,考虑了PCB焊盘、通孔和导线、以及元器件分布参数的运算放大器电路如图1(b)所示。     (a)典型的运算 ...…

查看全部问答>

纳米测量电流误差解决方案

其他应对移动和振动[1]问题的解决方案包括: •除去振动源或者与振动源间在机械上解耦。电机、水泵和其他机电装置都是常见的振动源[2]。 •稳定整个测试环境。保证电子元器件、导线和电缆的稳固安装或者捆绑固定。屏蔽[3]应该保证稳 ...…

查看全部问答>

给本次ADI实验室电路DIY大赛参赛者的一点后续建议

建议获奖者包括其它未获奖者和未如期完成作品的参赛者继续改进自己的作品,这不仅仅是动手实践提高自己技术能力的一次机会,好的DIY作品本身也是一件实用的装置,善于利用的话,也许还能成为一块不错的“敲门砖”,特别是对于还是学生的参赛者,同 ...…

查看全部问答>

LPC2103外部中断0

我仿真的时候没有问题可以,把程序下到板子里问题就出来了,为什么我把触发方式设置成边沿触发,把程序下到板子里就先执行了一次中断服务程序,而我在Protues仿真的时候就是好的,我有点郁闷了。怀疑是不是硬件的原因。板子放了很久,复位按钮更奇 ...…

查看全部问答>

QT编程怎样操作ARM寄存器

请问用QT编程能直接在嵌入式linux中直接操作ARM寄存器吗?如果能,是直接在代码中操作还是要什么特殊处理?…

查看全部问答>