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

南平企业网站建设右糖视频制作

南平企业网站建设,右糖视频制作,wordpress add_editor_style,网站开发需会的课程一、概述 本文主要介绍如何配置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/857217/

相关文章:

  • 平江县网站建设分享音乐到wordpress
  • 深圳网站建设 百度一下php企业网站开发
  • 查询网站注册信息摄影网站的实验设计方案
  • 收费下载网站cms域名注册网站建设网络实名
  • 如何制作动漫网站模板下载地址榆林市行政效能建设网站
  • 建设一个棋牌类网站开网站做代发
  • 电子商务网站建设选修课外网网站建设调研报告
  • 万江区做网站定制手机网站建设
  • 邓海舟网站建设教程有创意的个人网站名字
  • 公司内部网站创建小公司网站如何做
  • 太原网站优化推广公共资源交易网
  • 招聘网站简历数据分析怎么做iis服务器网站301重定向怎么做
  • 北京 公司网站开发怎么删掉安装的wordpress
  • 网站建设与app开发北京电子商务网站制作
  • 杭州网站设计询问蓝韵网络wordpress手机版本
  • 男科医院网站建设代理注册公司需要什么条件
  • win7 asp网站无法显示该页面嘉兴秀洲区全网seo优化优惠
  • 在网站留外链怎么做新手写作网站
  • 网站建设与网页设计制作书籍wordpress正则
  • 哈尔滨做网站哪家好第一ppt模板免费下载
  • 建设通类似网站最火网站排名
  • 山西做网站建设的平台零陵旅游建设投资公司网站
  • 做网站开发有前途吗wordpress app 开发教程 pdf
  • 建站哪个网站好自己做报名网站
  • 济南房产信息网站官网dw制作自己的网址
  • 如何查看网站页面大小制作一个网站需要哪些人
  • 做网站哪里的好wordpress贴图库插件
  • vps搭建网站是什么意思自然堂网站建设平台分析
  • 滨州网站建设九鲁谷歌网页版登录入口
  • 温州网站广西住建网官网