当前位置: 首页 > news >正文

建立网站卖没有版权的电子书青岛十大外贸公司

建立网站卖没有版权的电子书,青岛十大外贸公司,网站子站怎么做的,网站建设服务哪里便宜一、概述 本文主要介绍如何配置USART,并通过USART打印验证结果。以stm32f10为例,将PA9、PA10复用为USART功能,使用HSE PLL输出72MHZ时钟 APB2 clk不分频提供配置9600波特率。波特率计算公式如下: fck即为APB2 clk参考计算&#xf…

一、概述

       本文主要介绍如何配置USART,并通过USART打印验证结果。以stm32f10为例,将PA9、PA10复用为USART功能,使用HSE PLL输出72MHZ时钟 APB2 clk不分频提供配置9600波特率。波特率计算公式如下:

fck即为APB2 clk参考计算:

硬件图:

二、配置流程

        1)配置系统时钟输出72MHZ

         参考上文STM32 寄存器配置笔记——系统时钟配置 HSE as PLL

        2)计算USARTDIV

        USARTDIV = fck / 波特率 * 16

temp = (float)(pclk2 * 1000000) / (bound * 16);      // cal USARTDIV

         3)获取整数部分和小数部分

         获取整数和小数部分以及要写进BRR波特率寄存器的值。

	mantissa = temp;				                     // get mantissafraction = (temp - mantissa) * 16;                   // get fractionuart_brr = (mantissa << 4) | fraction;

         4) 使能时钟

         使能端口A时钟和USART1时钟。

         

           

    RCC->APB2ENR |= 1 << 2;                              // enable portA clkRCC->APB2ENR |= 1 << 14;                             // enable USART1 clk

         5)配置GPIO复用功能

         参考手册配置TX、RX的复用功能。

           

GPIOA->CRH &= 0xFFFFF00F;                             // reset portA pin9¡¢10 cfg
GPIOA->CRH |= 0x4B0;                                  // pin9 - UART1_TX pp af output pin10 - UART1_RX float input

         6)复位USART状态

        此处在开启USART前复位一下USART状态,保证USART能够彻底初始化。复位完后需要停止复位,避免USART不停复位

	RCC->APB2RSTR |= 1 << 14;                             // reset USART1RCC->APB2RSTR &= ~(1 << 14);                          // stop reset USART1

       7)配置波特率使能USART1

      

USART1->BRR = uart_brr;                               // set bound param 
USART1->CR1 |= 0x200C;                                // enable usart 8bit data no parity enable tx & rx

 三、源码

        整个代码调用情况如下:

        

void uart_init(u32 pclk2,u32 bound)
{  	 float temp;u16 mantissa;u16 fraction;u16 uart_brr;temp = (float)(pclk2 * 1000000) / (bound * 16);      // cal USARTDIVmantissa = temp;				                     // get mantissafraction = (temp - mantissa) * 16;                   // get fractionuart_brr = (mantissa << 4) | fraction;RCC->APB2ENR |= 1 << 2;                              // enable portA clkRCC->APB2ENR |= 1 << 14;                             // enable USART1 clkGPIOA->CRH &= 0xFFFFF00F;                             // reset portA pin9¡¢10 cfgGPIOA->CRH |= 0x4B0;                                  // pin9 - UART1_TX pp af output pin10 - UART1_RX float inputRCC->APB2RSTR |= 1 << 14;                             // reset USART1RCC->APB2RSTR &= ~(1 << 14);                          // stop reset USART1USART1->BRR = uart_brr;                               // set bound param USART1->CR1 |= 0x200C;                                // enable usart 8bit data no parity enable tx & rx
}

        在USART1配置完成后,将PA9、PA10接TTL转USB串口设备在主循环一直打印内容验证是否配置成功。

        在使用printf前需要做映射:

//加入以下代码,支持printf函数,而不需要选择use MicroLIB
#if 1
#pragma import(__use_no_semihosting)             
//标准库需要支持的函数               
struct __FILE 
{ int handle; /* Whatever you require here. If the only file you are using is */ /* standard output using printf() for debugging, no file handling */ /* is required. */ 
}; 
/* FILE is typedef¡¯ d in stdio.h. */ 
FILE __stdout;       
//定义  _sys_exit以避免使用半主机模式
void _sys_exit(int x) 
{ x = x; 
} 
//重定向fputc函数
//printf的输出,指向fputc, 由fputc输出到串口
//这里使用USART1输出printf信息
int fputc(int ch, FILE *f)
{      while((USART1->SR&0X40)==0);//等待上一次串口数据发送完成USART1->DR = (u8) ch;      	//写DR,串口1将发送数据return ch;
}
#endif 

http://www.yayakq.cn/news/650256/

相关文章:

  • 专业做淘宝网站绍兴jsp开发网站
  • 网站建设建议书九机手机网官网旗舰店
  • 制作网页的网站有哪些网站做链轮会被惩罚吗
  • 房产中介网站建设管理南京企业自助建站
  • 宁波网站建设详细策划企业网页设计公司
  • 做网站专题需要什么软件济南seo网站关键词优化排名
  • 输变电壹级电力建设公司网站伍佰亿营销型网站
  • php做网站有哪些好处工作心得体会简短的
  • 如何建立公司网站推广长沙高端网站建设品牌
  • 在线制作网站表白什么网站的新闻做参考文献
  • 平面设计教程网站西部数码网站模板
  • 网站未备案会怎么样瑞丽航空公司官方网站
  • 360免费建站视频1g1m wordpress
  • 班级网站建设感想wordpress后台编辑小工具
  • 苏州推广网站建设概况网络搭建难吗
  • 两个网站链接如何做广州网站建设方案优化
  • 网站页面组成可以做动画的网站都有哪些软件
  • 如何避免网站被攻击建立网站的主要方式
  • 网站开发飞沐搬瓦工 做网站
  • wordpress支持大数据处理网站内部seo优化包括
  • qq邮箱官方网站网站建设与管理试题一
  • html5做网站链接范例wordpress右下角弹出广告
  • 影视制作做的好的有什么网站燃烧学课程网站建设
  • 门户网站制作模板shopex进入网站自动回跳转到别的网站 是否被挂马
  • 淄博网站制作定制技术判断网站模板版本
  • 企业网站建设的要素有哪些wordpress用什么linux
  • 深圳建站公司优化做海报设计的图片网站有哪些
  • 做玻璃的网站东莞网站建设东莞
  • 山西中小学网站建设微信小程序费用有哪些
  • 网站提示404error订阅号做微网站需要认证吗