实验程序库函数版12printf输出_第1页
实验程序库函数版12printf输出_第2页
实验程序库函数版12printf输出_第3页
实验程序库函数版12printf输出_第4页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12printf出实前面介绍了STM32的串口通信。这一章学习利用串口进行printf串口的操作步骤单片机学习来说,非常重要。而我们开发板使用的STM32F103ZET6最多可以提供5路串口。那么STM32的串口操作步骤是怎么样的呢?GPIOUSARTIOIO(USART(包括设置波特率、数据长度、停止位、效验位等置它的中断优先级。)V.35库函数说要打开的时钟有两个一个GPIO口的时钟和USART的时钟。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);开了GPIOA和USART1的时钟(USART1使用的是PA9、PA10)/*配置GPIO的模式和IO口*/

/*初始化串口输入IO*/ GPIO_Init(GPIOA,&GPIO_InitStructure);/*GPIOUSART6置我们想要的波特率,比如你要使用9600递的参数baudRate。第二个成员是:USART_WordLength位数据长度,所以我们设置为:USART_WordLength_8b第四个成员是:USART_Parity,表示是否需要效验,我们设置为不 要USART_Parity_NoUSART_HardwareFlowControl,表示是否需要硬件谓硬件流就是使用DMA,我们这里不适用,所以我们设置为硬件流失能:第六个成员是:USART_Mode收又能发送,所以设置为:USART_Mode_Tx|USART_Mode_Rx。 //波特率设置为9600//波特率 8 位 ol_None;//失能硬件流 /*USART1USART1,USART1置的状态,所以我们设置为:ENABLE。所以设置的代码为:/*使能USART1*/我们设置为0。设置为0。的中断是USART1的中断,所以我们设置为:USART1_IRQn。/*设置NVIC参数*/NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn; USART1NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; 占优先级为0NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; 优先级为0NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; USARTUSART1,USART1;第二个参数是用来传递要发送的数据的,一般为一个8位数据。是否发送完成,如果测的话,传送回产生错误。USARTUSART1,第二个参数是用来设置要检测的状态的,我们要检测USART是否发送完成,所以我们设置为:USART_FLAG_TC0USARTUSART,USART1,所以选择断,所以选择USART_IT_RXNE。ENABLEUSART_ITConfig(USART1,USART_IT_RXNEUSART名字都已经帮我们定义了好,一般放在启动文件中(大家可以打开USART1:voidUSART1_IRQHandler(void);需要注意择要的串口,我们要USART1,所以这个参数设置为:USART1。第二个参数是选择要的中断标志位,我们要的是接收中断的标志位,所以SE(SE(即0);所以我们的函数应该写为USART_GetITStatus(USART1,USART_IT_RXNE)这个函数用来USART接收到的数据。它有一个参数。这个参数是用来选择你要的USART,我们要USATT1,所以我们设置为:USART1。这个函数通过返回一个168就返回一个8位的数据。在程序中使用C语言中的printf()Cprintf()printf()intfputc(intch,FILE*f)这么个函数,它转化为STM32串口输出的函数如下:intfputc(intch,FILE*p)printf{returnch;}USART1发送一个8择UseMicroLIB。然后编译就可以了。#pragmaimport(/*标准库需要的支持函数{

int/*Whateveryourequirehere.Iftheonlyfileyouareusingis/*standardoutputusingprintf()fordebugging,nofilehandling/*isrequired./*FILEistypedef’dinstdio.h.*/ /*定义_sys_exit()以避免使用半主机模式_sys_exit(int{x=}然后编译,就可以使用了printf初始化函数 :函数功 :IO端口及串口1,时钟初始化函 : :voidprintf_init()//printf{GPIO_InitTypeDefGPIO_InitStructure;//一个结构体变量,用来初始NVIC_InitTypeDefNVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //波特率设置为9600USART中断接收中断清除}串口接收函数void {staticu8k;检查指定的{ }}程序主函数 : :Main : : :intmain(){u32 { printf("tod1aintnumberd\r\n",d1);//整型数pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论