太阳城集团国际娱乐_20056.com_2138acom太阳集团官网导航

公司新闻
首页>20056.com>公司新闻

在查找h这个头文件的时刻,发现这个头文件中没有该函数的声明,原来这个函数已在iar这个编译器中集成,这里总结一下__delay_cycles();这个函数的详细用法___lin

在操作串口通信的时刻,有一个十分主要的参数:波特率。甚么是波特率:波特率就是每秒传送的字节数。双方在传输数据的历程傍边,波特率一致,这是通信乐成的根底保障。___listm32波特率相关的寄存器

stm32单片机设置波特率的寄存器只有一个:usart_brr寄存器,以下图所示。

该寄存器的有效位数为16位,前4位用于寄存小数部分,后12位用于寄存整数部分。将波特率算进去后,数值填入这个波特率便能够也许也许了。上面介绍如何计较。___li波特率计较法子

stm32的数据手册给出了计较法子,有一个公式,以下图所示:

在这个公式上,共有三个变量,此中两个咱们是知道的,fck和tx/rx波特率这两个是已知的,usartdiv是未知的。颠末历程该公式的描述能够也许也许看出如果操作usart1的话,那fck就是pclk2=72mhz,否则就是pclk1=36mhz,tx/rx波特率这个参数是已知的。只需要计较出usartdiv的值赋值给usart_brr寄存器便能够也许也许了。以115200为例,将公式变形后获得:usartdiv=72×1000000/(16×0625写入usart_brr便可。

前文说过,usart_brr的前4位寄存小数部分,后12位寄存整数部分。

那小数部分div_0625×16=1=0x01;

那整数部分div_mantissa=39=0x27;

那usart_brr=0x271;

数据手册给咱们供给了一张数据表:

在这张数据表上,已算出了每每操作的波特率值,咱们能够也许也许拿来间接用。但是如果咱们想把波特率的计举动当作成一个传参函数的编制,

如:usart_init(uint_t16baud),在调历时只需要写usart_init(9600),usart_init(115200),那步伐该怎么样样样样写呢?___li步伐的实现

上面介绍的是寄存器版的步伐。

步伐第一步45行:先计较获得usart_div,这个就是前面公式的变形;

步伐第二步46行:获得usart_div的整数部分;

步伐第三步47行:获得usart_div的小数部分;

步伐第四步48行:将整数部分左移4位,即存入brr寄存器的后12位;

步伐第五步49行:将整数和小数部分合在一路,即前4位和后12位从新组合;

步伐第六步50行:将计较进去的数值赋给brr寄存器。

这样一个将波特率作为形参的函数就完成了。从以上来看的话,波特率的计较好像也不是很难啊。

技能专区msp430单片机看门狗的根底用法分化如何计较单片机的波特率msp430单片机延时函数的操作法子c51单片机实现多个发光二极管凭据不同次序序发光的想象51单片机对八位数字秒表的想象下载发烧友app

打造属于您的人脉电子圈存眷电子发烧友微信

乏味有料的资讯及技无能货存眷发烧友课堂

锁。

会员登陆
“佛山陶瓷原产地签注备
下次自动登陆
找回密码?
会员注册
此次活动,由中国城科会县镇长联谊会智
新展厅的地址