STM32实验报告_第1页
STM32实验报告_第2页
STM32实验报告_第3页
STM32实验报告_第4页
STM32实验报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一:一个灯的闪烁一、实验要求1. 熟悉使用STM32F103ZET6开发板2. 利用C语言程序实现一个灯闪烁二、电路原理图T图1-1 LED灯硬件连接图三、软件分析1本实验用到以下3个库函数(省略了参数):RCC_DeInit(): RCC_APB2PeriphC1ockCmd(); GPIO.Init();2. 配置输入的时钟:SystemlnitO主要对RCC寄存器进行配置,GPIOA连接 在 APB2 上,因此 RCC_APB2PeriphClockCmd ()函数需要使能 APB2Periph_GPIOA3. 声明GPIO结构:PF6PF10 口配置为输出GPIO_InitStru

2、cture. GPIO_Pin =GPIO Pin 6 GPIO Pin 7 GPIO Pin 8 GPIO Pin 9 GPIO Pin 10;4. 应用GPIO 口 :点亮LED1有五种方法 ODR 寄存器法:GPIOA-ODR二Oxffbf; 位设置/清除寄存器法:GPIOA-BRR 1=0X001; 方法只适用于GPIOx.BSRR寄存器GPIO_WriteBit ()函数法:GPIO_Write(Oxffbf);置位复位库函数法:GPIO_ResetBits (GPIOF, GPI0_Pin_8);5. 主函数程序:int main(void)RCC_Conf i gurat i o

3、n();GPIO_Conf i gurat i on(); for(;)GPIOF-ODR 二 Oxfeff;Delay(600000);GPIOF-ODR 二 Oxffff;Delay(600000);/*配置系统时钟*/*配置GPIO 10 口初始化*/* PF8二0 点亮 D3 */* PF8=1 熄灭 D3 */四、实验现象下载程序后开发板上的LED1灯闪烁五、总结通过对本实验可以发现,和51等8位单片机相比,STM32对I/O端口的操 作变得复杂了许多。51单片机点灯的程序最简单,直接在mainO中写一个while (1),里面写4 行代码就可以了。STM32进入wh订e(l)之前必

4、须先配置1/0的方向,必须使能 外设的时钟。对STM32来说,除了 CM3内核都算外设,包括GPIO。STM32可以 关闭任何外设的时钟以禁止该外设,这样设计是出于减少功耗的考虑。实验二:流水灯的闪烁一、实验要求1、熟悉使用STM32F103ZET6开发板2、利用C语言程序实现流水灯的闪烁实验二、电路原理图图1-2流水灯硬件连接图三. 软件分析1 本实验用到以下4个库函数(省略了参数):RCC.DelnitO ; RCC_APB2PeriphClockCmd() ; GPIO_Init(); GPIO.WriteBit () ;3 个自定义函数 LED2. 配置输入的时钟:Systemlnit

5、O主要对RCC寄存器进行配置,GPIOA连接 在 APB2 ,因此 RCC_APB2PeriphClockCmd()函数需要使能 APB2Periph_GPIOA3. 声明 GPIO 结构: PF6PF1O 口配置为输出 GPIO.InitStructure. GPIO_Pin二GPIO Pin 6 GPIO Pin 7 GPIO Pin 8 GPIO Pin 9:GPIO Pin 10;4. 应用GPIO 口 :点亮LED1有五种方法 ODR 寄存器法:GPIOA-ODR二Oxffbf; 位设置/清除寄存器法:GPIOA-BRR 1=0X001; 方法只适用于GPIOx_BSRR寄存器 GP

6、IOJVr辻eBit ()函数法:GPIO_Write(Oxffbf); 置位复位库函数法:GPIO.ResetBits (GPIOF, GPI0_Pin_8);5. 主函数程序:int main(void)RCC_Conf i gurat i on();GP10_Conf i gurat i on();/*配置系统时钟*/*配置GPIO 10 口初始化*/for(;)LED1 ();LED2 ();LED3 ();6. LED1实现所有灯从ledl到led5依次点亮再全部熄灭,然后全部点亮, 再全部熄灭的过程;LED2实现所有灯从led3到ledl依次点亮的过程;LED3实 现所有灯从led

7、5到ledl依次熄灭,点亮1、3、5灯,然后全部点亮,再全部 熄灭的过程;四、实验现象下载程序后开发板上的LED所有灯从ledl到led5依次点亮再全部熄灭, 然后全部点亮,再全部熄灭,从led5到ledl依次点亮,所有灯从led3到ledl 依次熄灭,点亮1、3、5灯,然后全部点亮,再全部熄灭。五、总结通过代码分析发现,使用固件库函数可以大大简化编程工作,我们可以依 葫芦画瓢,很容易修改成自己想要的功能代码。对相关寄存器的深入了解,可 以使我们对各种外设功能有更深刻、更具体的掌握,使用起来也更得心应手。实验三:单级外部中断一、实验要求1. 利用C语言程序实现按下SW3, LED5闪烁20次单

8、级外部中断实验2. 通过实验掌握外部中断的编程方法二、电路原理图1-3外部中断连接图三、软件分析1. STM32外部中断要经过3个部分模块设置处理,然后才进入到中断服务程 序的处理,其框图如下:1-4中断处理模块框图2. STM32外部中断:GPI0输入中断虽然有16个输入通道,但是只占用了 7个中断向量。 EXTI0EXTI4各占用一个中断向量,EXTI59共用一个,EXTI 1015共用一个。 所以在编程的时候EXTI5、9将共用一个中断函数,EXTI1015共用一个中断函数。3. 本实验用到以下6个库函数(省略了参数):RCC_DeInit();RCC_APB2PeriphClockCm

9、d();GPI0_Init();GPIO_WriteBit();EXTI_InitTypeDef():NVIC_PriorityGroupConfig()4. 配置输入的时钟:SystemlnitO主要对RCC寄存器进行配置,GPIOA连接 在 APB2 上,因此 RCC_APB2PeriphClockCmd ()函数需要使能 APB2Periph_GPI0A5. 声明GPIO 结构: PF6PF10 口配置为输出GPIO_InitStructure. GPI0_Pin=GPIO Pin 6 GPIO Pin 7 GPIO Pin 8 GPIO Pin 9 GPIO Pin 10:6. 应用G

10、PIO 口 :点亮LED1有五种方法 ODR 寄存器法:GPIOA-ODR二Oxffbf; 位设置/清除寄存器法:GPIOA-BRR 1=0X001; 方法只适用于GPIOx.BSRR寄存器GPIO_WriteBit ()函数法:GPIO_Write(Oxffbf);置位复位库函数法:GPIO_ResetBits (GPIOF, GPI0_Pin_8);7. EXTI 配置: 引脚选择:GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource3); 清除中断标志位:EXTI.ClearlTPendingBit (EXTI_Line8) 设

11、置外部中断结构体的成员:EXTI_InitStructure. EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure. EXTI_Trigger = EXTI_Trigger_Falling;EXTI InitStructure. EXTI LineCmd = ENABLE:EXTI_Init(&EXTI_InitStructure);8. NVIC配置:分为四个部分,分别针对中断线0到中断线3,结构相同。 NVIC_PriorityGroupConf ig ()函数配置占先优先级和副优先级9 主函数程序:int main()/*配置系统时钟*/

12、* 10 口初始化*/*全灭*/RCC_Conf i gurat i on ();NVIC_Conf i gurat i on();GPIO_Conf iguration();EXTI_Conf iguration();GPIO_Write(GPIOF, Oxffff);Delay(5000);while (1)0四、实验现象每按下一次SW3, LED5闪烁20次,实现单级中断五、总结通过实验,我们学习了如何使用STM32的GPI0外部中断功能。GPIO外部中 断使用方法比较容易掌握,只要沿着中断信号线一路设置遇到的寄存器,最后 编写中断服务程序即可,当然还要设置中断优先级。实验四:中断嵌套一

13、、实验要求1. 利用C语言程序实现中断嵌套实验按下SW3, LED5闪烁20次 SW3 PAO LED5 PF10 中断优先级 为1;按下SW2, LED3闪烁20次 SW2 PD3 LED3 PF8 中断优先 级为2;按下SW1, LED1闪烁20次 SW1 PA8 LED1 PF6 中断优 先级为3; 按下SW5, LED4闪烁20次 SW5 PC13 LED4 PF9 中断 优先级为42. 通过实验掌握外部中断的编程方法三. 软件分析1 配置输入的时钟:SystemlnitO主要对RCC寄存器进行配置,GPIOA连接 在 APB2 ,因此 RCCAPB2PeriphClockCmd()函

14、数需要使能 APB2Periph_GPI0A2声明 GPIO 结构:PF6PF10 口配置为输出GPIO_InitStructure. GPI0_Pin二GPIO Pin 6 GPIO Pin 7 GPIO Pin 8 GPIO Pin 9!GPIO Pin 10;7. 应用GPIO 口 :点壳LED1有五种方法 ODR 寄存器法:GPIOA-ODR=Oxffbf;二、电路原理图图1-5多级中断硬件连接图 位设置/清除寄存器法:GPIOA-BRR 1=0X001; 方法只适用于GPIOx.BSRR寄存器GPIO_WriteBit ()函数法:GPIO_Write(Oxffbf):置位复位库函数

15、法:GPIO.ResetBits (GPIOF, GPIO_Pin_8);7. EXTI 配置: 引脚选择:GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPI0_PinSource3); 清除中断标志位:EXTI.ClearlTPendingBit (EXTI_Line8) 设置外部中断结构体的成员:EXTI_InitStructureEXTI_Mode = EXTI_Mode_Interrupt:EXTI_InitStructureEXTI_Trigge:r = EXTI_Trigger_Fal1ing:EXTI InitStructure. EXTI

16、 LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);8. NVIC配置:分为四个部分,分别针对中断线0到中断线3,结构相同。优先级组都设为2, PC13中断主次优先级分别为4; PA8主次优先级分别 为3;PD3主次优先级分别为2;PA0主次优先级分别为1;要求先进入PC13中断, 执行某一个任务,突然PA8打断PC13的中断,转而进行FA8的中断。PC13的 中断任务执行完毕,返回到PC13中断继续原来的中断任务。突然PD3打断PA8 的中断,转而进行PD3的中断。PD3的中断任务执行完毕,返回到PA8中断继 续原来的中断任务,以此推类。/NVI

17、C_PriorityGroupConf ig ()函数配置占先优先级和副优先级NVIC_PriorityGroupConf ig (NVIC_PriorityGroup_2);设置中断优先级分组2NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel; / 设定中断源为PC13SW5NVIC_InitStructure. NVIC_IRQChannelPreemptionPriority = 4;/中断占优先莎为4NVIC_InitStructure. NVIC_IRQChannelSubPriority = 0;/副优先级为0NVI

18、C_InitStructure.NVIC_IRQChannel 二 EXTI9_5_IRQChannel;/设定中断源为PA8SW1NVIC_InitStructure NVIC_IRQChannelP:reeinptionPriority = 3;中断占优先级为3NVIC_InitStructure. NVIC_IRQChannelSubPriority = 0;/副优先级为0NVIC_InitStructure.NVIC_IRQChannel 二 EXTI3_IRQChannel:/设定中断源为PD3SW2NVIC_InitStructure. NVIC_IRQChannelPreempt

19、ionPriority = 2;/ 中断占优先级为2NVIC_InitStructure. NVIC_IRQChannelSubPriority = 0;/副优先级为0NVIC_InitStructure.NVIC_IRQChannel 二 EXTIOIRQChannel:/设定中断源为PAOSW3NVIC_InitStructure NVIC_IRQChdnnelP:reeniptionPriority = 1;/中断占优先莎为1NVIC_InitStructure. NVIC_IRQChannelSubPriority = 0;/副优先级为09. 主函数程序:int main()/*配置系

20、统时钟*/* 10 口初始化*/*全灭*/RCC_Conf i gurat i on ();NVIC_Conf i gurat i on();GPIO_Conf iguration();EXTI_Conf i gurat i on();GPIO_Write(GPIOF, Oxffff);Delay (5000);while(1) 四、实验现象按下SW3, LED5闪烁20次,闪烁过程中因为其中断优先级为1,所以除了 复位按键其他按键不能打断LED5的亮灯情况;按下SW2, LED3闪烁20次,因 为中断优先级为2, SW3可以使LED3闪烁停止而其他按键不能;按下SW1, LED1 闪烁20次

21、;按下SW5, LED4闪烁20次,中断优先级为4五、总结通过实验,我们学习了如何使用STM32的GPIO外部中断功能和中断嵌套的 编程。GPIO外部中断使用方法比较容易掌握,设置中断优先级时中断优先级越 高,设置的数字应该越小。实验五:TIM2的基本应用一、实验要求1. 利用C语言程序实现用通用定时器TIM2中断控制LED的闪烁2. 通过实验掌握定时器的编程方法二、软件分析1. STM32的通用定时器:STM32的通用定时器是一个通过可编程预分频器驱 动的16位自动装载计数器构成 STM32有4个通用定时器(TIH2、TIM3 TIM4、 TIM5),它们适用于多种场合,包括测量输入信号的脉

22、冲长度(输入捕获)或者产 生输出波形(输出比较和PWM)。每个定时器都是完全独立的,没有互相共事任何 资源。它们可以一起同步操作。2. 配置输入的时钟:SystemlnitO主要对RCC寄存器进行配置,GPIOA连接 在 APB2 上,因此 RCC_APB2PeriphClockCmd ()函数需要使能 APB2Periph_GPIOA3. 声明 GPIO 结构: PF6PF1O 口配置为输出 GPIO_InitStructure. GPIO_Pin=GPIO Pin 6 GPIO Pin 7 GPIO Pin 8 GPIO Pin 9 (PIO Pin 10;4. 应用GPIO 口 :点亮L

23、ED1有五种方法 ODR 寄存器法:GPIOA-ODR二Oxffbf; 位设置/清除寄存器法:GPIOA-BRR 1=0X001; 方法只适用于GPIOx.BSRR寄存器GPIO_WriteBit ()函数法:GPIO.Write(Oxffbf):置位复位库函数法:GPIO.ResetBits (GPIOF, GPI0_Pin_8);5. EXTI 配置: 引脚选择:GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPI0_PinSource3); 清除中断标志位:EXTI_ClearITPendingBit (EXTI_Line8) 设置外部中断结构体的成

24、员:EXTI_InitStructureEXTI_Mode = EXTI_Mode_Interrupt:EXTI_InitStructure EXTI_T:rigge:r = EXTI_Trigger_Fal 1 ing:EXTI InitStructure. EXTI LineCmd = ENABLE;EXTI_Init(&EXTI_In辻Structure);6. NVIC配置:分为四个部分,分别针对中断线0到中断线3,结构相同。 NVIC_PriorityGroupConf ig ()函数配置占先优先级和副优先级7. TIM配置:void TIM2_Init(void)TIM_TimeB

25、aseInitTypeDef TIM_TimeBaseStructure:定义个TIM初始化看构体TIM_TimeBaseStructure. TIM_Period = 65535; /自动装载寄存器 (TIMx_ARR)TIM_TimeBaseStructure. TIM_Prescaler = 0;/预分频器(TIMx.PSC)TIM_TimeBaseStructure. TIM_ClockDivision = 0;/时钟分频因子 CKD1:O,舌此没有用到/计数器模式:TIMx向上计数模式,操作的是TIMx.CRlTIM_TimeBaseStructure. TIM_CounterMod

26、e = TIM_CounterMode_Up:TIM_TimeBaseInit (TIM2, & TIM_TimeBaseStructure): 根据上述参 数设置TIMx的时间基数TIM.InternalClockConf ig (TIM2) ; /TIM2 预分频器由内部时钟驱动 (默认),操屜TIMx_SMCRTIM_ITConfig(TIM2, TIM_IT_Update , ENABLE ) ;/使能 TIM2 中断, 操作的是TIMx.DIERTIM_Cmd(TIM2, ENABLE):/使能定时器TIM2,操作的寄存器是TIMx.CRl8主函数程序:int main()RCC_C

27、onf i gurat i on ();GPIO_Conf iguration();*/NVIC_Conf i gurat i on ();TIM_Conf igurat ion ();GPIO_Write(GPIOF, Oxffff); while;三、实验现象TIM2使LED1灯以1S的周期闪烁,/*配置系统时钟*/*配置GPIO I/O 口初始化/* 配置 NVIC */* 配置 TIMs */*全灭*/单次定时时间为100*10 - 6S四. 总结通过实验,我们学习了如何使用STM32的通用定时器功能。通用定时器的 溢岀时间计算:使用通用定时器的最简单功能,就是定时,把讣数器单元也当

28、作一个分配器,时钟信号经过预分频器和汁数器两级分频后,岀来的信号就是 溢岀中断信号。所以溢出中断频率山以下式子确定:fn =J ck _ ent(TIMx PSC +1) (TIMx . ARR +1)定时时间为:T= (TOLPeriod+1)* (TOLPrescaler+1) /TIMxCLK实验六:TIM2, TIM3, TIM4多定时器的应用一、实验要求1. 利用C语言程序实现TIM定时器多级中断2. 通过实验掌握定时器的编程方法二、软件分析1配置输入的时钟:SystemlnitO主要对RCC寄存器进行配置,GPIOA连接 在 APB2 上,因此 RCC_APB2PeriphCloc

29、kCmd ()函数需要使能 APB2Periph_GPIOA2. 声明GPIO结构:PF6PF1O 口配置为输出、应用GPIO 口3. EXTI 配置:4. NVIC配置:分为四个部分,分别针对中断线0到中断线3,结构相同。 NVIC_PriorityGroupConf i g ()函数配置占先优先级和副优先级5. TIM配置:使用定时器,就必须使能定时器的时钟,这就是函数RCC_APBlPeriphClockCmd();,通 过 它 开 启RCC_APBlPeriph_TIM2TIM_DeInit( TIM2);该函数主要用于复位 TIM2 定时器, 使为进入初始状态。然后義们对自动重装载寄

30、存器赋值,TIM.Period的大小实 际上表示的是需要经过TIM.Period次计数后才会发生一次更新或中断。TIM_OCInitTypeDefTIM_OCInitStructure;TIM_TimeBaselnitTypeDef TIM_T imeBaseStructure;/* TIM2 configuration通道1:输出比较模式*/TIM_TimeBaseStructure. TIM_Period 二 1999; /自动重装载寄存器的值TIM_TimeBaseStructure. TIM_Prescaler =35999;/时钟预分频数TIM_TimeBaseStructure.

31、TIM_ClockDivision = 0;/采样分频TIM_TimeBaseStructureTIM_Counte:rMode = TIM_CounterMode_Up: / 向上计数TINLTimeBaselnit(TIM2, &TIM_TimeBaseStructure);TINLPrescalerConfig(TIM2, 7199, TINLPSCReloadMode.Immediate):TIM_TimeBaseStructureTIM_RepetitionCounte:r = 0;TIM_OClInit(TIM2, &TIM_OCInitStructure);TIM_OCInitS

32、tructure. TIM.OCMode = TIM_OCMode_Timing;TIM_OCInitStructure. TIM_OutputState = TIM_OutputState_Enable:TIM_OCInitStructure. TIM_Pulse = 0x0;TIM_OCInitStructure. TIM_OCPolarity = TIM_OCPolarity_High;TIM.OCIPreloadConfig(TIM2, TIM_OCPreload_Disable);/* TIM3 configuration Output Compare Timing Mode con

33、figuration: Channell */TIM TimeBaseStructure. TIM Period = 3999;TINLTimeBaselnit(TIM3, &TIM_TimeBaseStructure);TIM_0ClInit(TIM3, &TIM_OCInitStructure);/* TIM4 configuration Output Compare Timing Mode configuration: Channe11 */TIM TimeBaseStructure. TIM Period = 5999;TIM_TimeBaseInit(TIM4, &TIM_TimeB

34、aseStructure);TIM_0ClInit(TIM4, &TIM_OCInitStructure);TIM_Cmd(TIM2, ENABLE);/* TIM2 enable counter */TIM_Cmd(TIM3, ENABLE);/* TIM3 enable counter */TIM_Cmd(TIM4, ENABLE);/* TIM4 enable counter */TIM.PrescalerConfig(TIM2, 20000, TIM_PSCReloadMode_Immediate);TIM_PrescalerConfig(TIM3, 30000, TIM_PSCRel

35、oadMode_Immediate);TIM_PrescalerConfig(TIM4, 40000, TIM_PSCReloadMode_Immediate);TIM.ClearFlag(TIM2, TIM_FLAG_Update) ; /清除 TIM2 溢出中断TIM.ClearFlag(TIM3, TIM_FLAG_Update) ; /清除 TIM3 溢出中断标志TIM.ClearFlag(TIM4, TIM_FLAG_Update) ;/清除 TIM4 溢出中断标志TIM_ITConfig(TIM2, TIM.ITUpdate, ENABLE) ;/使能中断TIM_ITConfig(

36、TIM3, TIM_IT_Update, ENABLE) ;/使能中断TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE) ;/使能中断三. 实验现象LEDX LED3、LED5分别以0. 5s. Is、2s的频率闪烁四、总结通过实验,我们学习了如何使用STM32的通用定时器功能。通用定时器的 溢岀时间计算:使用通用定时器的最简单功能,就是定时,把计数器单元也当作一个分配器,时钟信号经过预分频器和计数器两级分频后,出来的信号就是 溢出中断信号。所以溢出中断频率山以下式子确定:fn =fck _ cn!(TIMx PSC +1) (TIMx . ARR +1)定时时

37、间为:T= (TINLPeriod+1)* (TINLPrescaler+1) /TIMxCLK实验七:串口 USART1读取CPU的ID号一、实验要求1. 利用C语言程序实现串口 USART1读取CPU的ID号2. 通过实验掌握串口 USART1的编程方法二、电路原理图1-6串口硬件连接图三、软件分析1. 用查询方式使用STM32的串口发送数据的基本程序流程是:打开复用功 能、串口 1的时钟;设置TXD、RXD引脚工作模式;设置波特率、数据位数、停 止位数、奇偶校验位等;使能吊口;发送数据;等待直到数据发送完成;清除 发送完成标志。2. 在 RCC_Configuration()函数的/使能

38、 GPI0A 的时钟RCC_APB2Per iphC 1 ockCmd (RCC_APB2Per iph_GPIOA , ENABLE);后面增加一 个语句:使能复用功能、串口 1 的时钟 RCC_APB2Per i phC1ockCmd(RCC_APB2Per i ph_AFI0RCC_APB2Per i ph.USART1,ENABLE);3. 在 GPI0_Init()函数的/初始化 GPIOAGPI0_Init(GPIOA,&GPI0_In辻Structure);后面增加以下代码:/PA9作为USART1的TX端,打开复用,用于发送数据GPIO_InitStructure. GPIO.

39、Pin = GPI0_Pin_9;/选中 PA 口的Pin_9GPIO.In辻Structure. GPIO_Mode = GPIO_Mode_AF_PP; /复用推挽输出GPIO.Init (GPIOA , &GPIO_InitStructure) ;/PA10 作为 USART1 的 RX 端, 用于接收竅据GPIO.In辻Structure. GPI0_Pin = GPI0_Pin_10;/ 选中 PA 口的 Pin_10GPI0_InitStructure. GPIO_Mode = GP10_Mode_IN_FL0AT ING;/浮空输入GPIO_Init(GPIOA, &GPIO_I

40、nitStructure);4. 增加一个函数/函数功能:初始化串口二二二二二void USART_Configuration(void)USART.InitTypeDef USART.InitStructure;/定义一个结构体变量USART.Delnit (USART1) ;/将US ART 1寄存器重设为缺省值USART_InitStructure.USART_BaudRate = 9600;/波特率USART_InitStructure. USART_WordLength 二 USART_WordLength_8b; /8位数福USART_InitStructure. USART_St

41、opBits = USART_StopBits_l;/I位停丘位USART_InitStructure. USART_Parity = USART_Parity_No; / 无 校验位硬件流控制失能USART_InitStructure. USART_HardwareFlowControl=USART HardwareF1owContro1 None;/发送、接收使能USART_InitStructure. USART.Mode = USART_Mode_Tx USART_Mode_Rx;/根据USART.InitStruct中指定的参数初始化外设USART 1寄存器USART.In辻(USA

42、RT1, &USART_In辻Structure);USART.Cmd (USART 1, ENABLE) ;/使能 USART 15. 将main函数改为如下内容:int main()RCC_Conf i gurat i on ();/*配置系统时钟*/GPIO_Conf iguration();/* 10 口初始化*/USART_Conf iguration();/* to get thechipidand put it inChipUniqueIDL3j ,printf the chipid */Get_ChipID();/*pri ntf the flashmemory amount

43、*/printf (rn芯片的唯一ID为:%X-%X-%Xrn, ChipUniqueIDO,ChipUniqueIDl, ChipUniqueID2); printf(rn 芯片 flash 的容量为:%dK rn,*( ul6*)(0X1FFFF7E0);while(1) 四、实验现象通过stm32板子发射,在电脑的软件接收端收到发射的内容五、总结通过实验,我们学习了如何使用STM32的吊口功能。在一开始发射的时候 一直接收不到发射的内容,但是程序乂没有出错,后来发现是stm32跳线帽选 择错误,修正跳线帽之后接收到的是乱码,后来发现是波特率的设置出现了问 题,修正之后就能收到正确的发送内容了。实验八:异步通信USART2的重映射一、实验要求1. 利用C语言程序实现异步通信USART2的重映射2. 通过

温馨提示

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

评论

0/150

提交评论