版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东济南市第五人民医院招聘卫生高级人才和博士(控制总量)8人备考题库带答案详解(典型题)
- 2026广东百万英才汇南粤东莞市樟木头医院招聘纳入岗位管理的编制外人员37人备考题库含答案详解(黄金题型)
- 2026上半年广东江门市开平市医疗卫生事业单位进校园招聘41人备考题库附答案详解(综合卷)
- 2026陕西省荣复军人第一医院招聘备考题库及1套参考答案详解
- 2026四川资阳益福康养产业有限公司招聘2人备考题库完整答案详解
- 2026海南海控乐城医院(四川大学华西乐城医院)招聘26人备考题库含答案详解(培优b卷)
- 2026广东深圳市南山区松坪文理幼儿园招聘1人备考题库及参考答案详解(培优)
- 2026“才聚齐鲁成就未来”山东省征信有限公司社会招聘18人备考题库附答案详解(培优a卷)
- 2026年3月临泉皖能环保电力有限公司社会招聘1人备考题库(第二次)完整参考答案详解
- 2026年上半年长信保险经纪(四川)有限公司第二批人员招聘1人备考题库及答案详解(名校卷)
- 钢板桩支护施工方案完整版
- 超龄员工用工免责协议书
- 土地复耕实施方案ㄟ
- 个人和公司签的业务提成协议书(2篇)
- GB/T 18029.8-2024轮椅车第8部分:静态强度、冲击强度及疲劳强度的要求和测试方法
- 81.GJB 1112A-2004 军用机场场道工程施工及验收规范
- 中外政治思想史-形成性测试三-国开(HB)-参考资料
- 灭火器维修与保养手册
- 电梯日管控、周排查、月调度内容表格
- 泌尿生殖系统肿瘤PPT
- 体外膜肺氧合ecmo的护理
评论
0/150
提交评论