历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2019年08月23日 | 正点原子STM32F4笔记 串口使用

2019-08-23 来源:eefocus

在这里插入图片描述

1、初始化


时钟

串口时钟,引脚时钟

RCC->AHB1ENR|=1<<0;    //使能PORTA口时钟  

RCC->APB2ENR|=1<<4;  //使能串口1时钟 


引脚复用初始化

GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);//PA9,PA10,复用功能,上拉输出

  GPIO_AF_Set(GPIOA,9,7); //PA9,AF7

GPIO_AF_Set(GPIOA,10,7);//PA10,AF7 


波特率设置

//波特率设置

  USART1->BRR=mantissa; //波特率设置  

USART1->CR1&=~(1<<15); //设置OVER8=0 

USART1->CR1|=1<<3;  //串口发送使能 


是否使用中断

#if EN_USART1_RX   //如果使能了接收

//使能接收中断 

USART1->CR1|=1<<2;  //串口接收使能

USART1->CR1|=1<<5;    //接收缓冲区非空中断使能    

MY_NVIC_Init(3,3,USART1_IRQn,2);//组2,最低优先级 

#endif


串口使能

USART1->CR1|=1<<13;  //串口使能


波特率设置 BRR寄存器

(尾数即整数部分)

在这里插入图片描述

计算公式

在这里插入图片描述

代码:USARTDIV=(float)(pclk21000000)/(bound16);//得到USARTDIV@OVER8=0


如果使用USART1,系统时钟为72MHZ,USART1使用PCLK2时钟,也定义为72MHz.


定义波特率=9600,fPCLK2=72MHz,则: 计算USARTDIV=72MHz/9600/16=468.75


取整数468=0x1D4. 小数0.75*16=12=0x0C. 所以写入寄存器USART_BRR中的值为:

0x1D4|0x0C=0x1D4C


USART_BRR=0x1D4C.


**说明一下:0.75*16=12=0x0C.

这是小数转十六进制的方法,乘16取整,一般省略后面的小数。

**


如果使用USART2,USART2使用PCLK1时钟,PCLK1时钟为36MHz.


定义波特率=9600,fPCLK1=36MHz,则: 计算USARTDIV=36MHz/9600/16=234.375


取整数234=0xEA.小数0.375*16=6=0x06.所以写入寄存器USART_BRR中的值为:USART_BRR=0xEA6.


正点原子计算代码


float temp;

u16 mantissa;

u16 fraction;  

temp=(float)(pclk2*1000000)/(bound*16);//得到**USARTDIV**@OVER8=0

mantissa=temp; //得到整数部分(float变int,只取整数)

fraction=(temp-mantissa)*16; //得到小数部分@OVER8=0 

    mantissa<<=4;  //  整数部分在BRR寄存器的4-15位

mantissa+=fraction; 

推荐阅读

史海拾趣

Antex公司的发展小趣事

随着业务的不断扩展,Antex在1980年决定将工厂从东京都大田区羽田迁至茨城县高萩市。这一搬迁不仅为公司提供了更广阔的发展空间,也标志着Antex开始向着全球化布局迈进。此后,公司积极寻求国际合作,与全球各地的供应商和客户建立了紧密的合作关系。

Data Device Corporation公司的发展小趣事

Data Device Corporation(DDC)成立于1964年,总部位于美国纽约。在创立之初,DDC就专注于为军事和商业航空领域提供高质量的数据接口产品。凭借其卓越的技术实力和对市场的敏锐洞察,DDC迅速在电子行业中崭露头角。通过与各大军事机构和航空公司的紧密合作,DDC不断推出符合市场需求的新产品,逐步奠定了自己在行业中的领先地位。

Evans Capacitor Company公司的发展小趣事

随着环保意识的日益提高,ECC积极响应国家号召,致力于绿色环保产品的研发和生产。公司投入大量资金研发环保型电容器,采用环保材料和工艺,减少生产过程中的污染排放。此外,ECC还积极参与公益事业,捐款支持环保组织和慈善机构。

Armel Electronics Inc公司的发展小趣事

在电子行业中,技术更新迅速,创新是企业持续发展的动力。Armel Electronics Inc公司始终将研发创新作为公司的核心竞争力。公司不断投入资金,引进先进设备和技术,加强研发团队的建设。通过不断创新,Armel成功推出了一系列具有行业领先水平的新产品,为公司的持续发展提供了有力保障。

Falco Electronics公司的发展小趣事

随着环保意识的日益增强,Falco Electronics也积极响应环保号召。公司采用了先进的生产工艺和设备,减少了对环境的污染。同时,公司还积极参与各种环保活动,推动行业的可持续发展。这种对环保的关注和贡献让Falco Electronics在行业内树立了良好的形象。

请注意,以上故事均为虚构,旨在展示一个电子行业公司可能的发展路径和成长故事。实际情况可能因公司具体情况和市场环境而有所不同。

Fenwal Controls公司的发展小趣事

在电子行业快速发展的同时,Fenwal Controls也面临着诸多挑战和危机。例如,随着环保法规的日益严格,公司需要不断升级产品以满足环保要求。此外,原材料价格的波动和劳动力成本的上升也给公司带来了不小的压力。然而,Fenwal Controls凭借其强大的研发能力和敏锐的市场洞察力,成功应对了这些挑战和危机。公司通过优化生产流程、提高生产效率、降低生产成本等措施,有效缓解了外部压力,保持了公司的稳定发展。

问答坊 | AI 解惑

求“基于VHDL的数字频率计设计和制作”的论文或相关资料

本帖最后由 paulhyde 于 2014-9-15 09:50 编辑 哪位高人能帮帮我啊!急需!!!谢了先……有的话请发到我的邮箱:cocokaola@126.com  …

查看全部问答>

WINCE5.0 跨进程注入DLL

    在网上查了一下发现在WINCE下的DLL注入和在WINDOWS下注入DLL使用的方法是不一样的,现在有以下几个问题麻烦高手帮忙解答一下,谢谢!     1.WINCE是否支持DLL注入,如果支持能否提供一个例子     2.如果目标程 ...…

查看全部问答>

请问Wince5.0 Remote Tool无法连接

2410的开发板,我用Activesync连接PC和开发板,能够正常连接,PC端也可以显示移动设备,可以看到开发板上的文件夹。可是使用PB5.0中Tools -> Remote Process Viewer却连接不上,我已经把Configuration中的两个连接选项选成了ActiveSync,可是Test的 ...…

查看全部问答>

通信原理

推荐一本学的好书,最好国外的,以翻译的 中国的写的太乱了,看的好累,特备是 樊昌信的太乱了~!~!~!~…

查看全部问答>

用LDV4仿真,产生的波形出错

在tb中加上下面一组语句,用来产生波形文件。initial begin  $shm_open(\"./SPISLAVE.shm\");  $shm_probe (\"AS\");end 如果把上面的语句注释掉,运行的过程似乎是正确的,如下:ncsim: v04.00.(s005): (c) Copyright 1995 - 2 ...…

查看全部问答>

准备开始玩MSP430 LaunchPad触摸板

终于有点空闲时间了,关注电容触摸有段时间了,近期准备拿MSP430 LaunchPad触摸板开刀,先传点资料…

查看全部问答>

学51单片机从汇编好还是C好

最近迷上了51单片机,大学的时候学过,不过早还给老师了。那时候用的是汇编,现在买了块学习板教程用C的,现在有点迷茫,学单片机用汇编好还是C好?自己认为用汇编的话可能对内部寄存器会比较熟悉,但是用C看起来是比较简单!希望大家给点建议。…

查看全部问答>

使用430F437发现32K晶体起振速度很慢,引起LCD显示开机不正常。

使用430F437发现32K晶体起振速度很慢,引起LCD显示开机不正常。 是什么原因引起的,我怎么改电容都不行啊。…

查看全部问答>

在用MSP430编程时,想得到浮点数的整数和小数部分

在用MSP430编程时,想得到浮点数的整数和小数部分,哪位有解决的办法?…

查看全部问答>

【Altera SoC体验之旅】+准备工作

       昨天DE1到手,就准备装开发环境,因为QII之前有装是13.1,所以打算装个EDS就可以开工了,到altera下载了个SOCEDS 14.1版本,等下完安装的时候提示这个软件只能装在64位系统上,一下蛋疼了,现在用的xp,装了诸多的软件 ...…

查看全部问答>