自行车码表

一、      实验目的和要求1.    理解MCU上电启动过程;2.    掌握使用Cube库来编写STM32裸机程序的方法;3.    掌握使用Cube库来编写GPTO和UART程序的方法;4.    掌握使用Cube库来编写中断响应程序的方法;5.    理解前后台程序模式6.    掌握在STM32F103上编写裸机程序并下载运行的方法。 二、      实
摘要由CSDN通过智能技术生成

一、      实验目的和要求

1.    理解MCU上电启动过程;

2.    掌握使用Cube库来编写STM32裸机程序的方法;

3.    掌握使用Cube库来编写GPTO和UART程序的方法;

4.    掌握使用Cube库来编写中断响应程序的方法;

5.    理解前后台程序模式

6.    掌握在STM32F103上编写裸机程序并下载运行的方法。

 

二、      实验器材

1.    STM32F103核心板一块;

2.    MicroUSB线一根;

3.    STLink板或USB串口板一块;

4.    交叉编译软件

 

三、      实验内容和原理

1.编写Cube程序,配置UART0为9600,8n1,上电后向串口输出“Hello”,在PC上通过串口软件观察结果

2.通过面包板在PA11和PA12各连接一个按钮开关到地

3.编写Cube程序,配置PA11和PA12为内部上拉到输入模式,在main()函数循环检测PA11按钮按下,并在按钮按下时在串口输出Pressed。

4.编写Cube程序,配置PA12下降沿触发中断,程序中设置两个全局变量,一个为计数器,一个为标识。当中断触发时,计数器加1,并设置标识。在主循环中判断标识,如果标识置位则清除标识并通过串口输出计数值;

5.编写Cube程序,开启定时器为200ms中断一次,中断触发时设置标识,主循环根据这个标识来做串口输出(取消4的串口输出);

6.编写完整的码表程序,PA12的按钮标识车轮转了一圈,通过计数器可以得到里程,通过定时器中断得到的时间可以计算出速度;PA的按钮切换模式,模式一在串口输出里程,模式二在串口输出速度。

四、      实验过程和数据记录

1.    下列图片为实物连接图


其中串口使用PA9,PA10;GPIO使用PA11,PA12,分别连接按钮。黑线接地。

 

2.    在Cube软件中配置UART0的波特率为9600, 8n1,然后向串口输出Hello,通过Mac上的串口软件观察结果。

a.    下图为配置图片,将波特率设置为9600,8n1.



b.    配置完成后,我们就可以用HAL_UART_Transmit和HAL_UART_Receive两个函数来进行串口的收发数据。使用GNUC需要重写__io_putchar和fputc函数,我们通过宏定义来完成。


c.    测试串口输出,在while循环前添加printf函数来输出Hello


d.    下面是实验结果展示图


3.    编写Cube程序,配置PA11和PA12为内部上拉到输入模式,在main()函数循环检测PA11按钮按下,并在按钮按下时在串口输出Pressed

a.    首先配置PA11和PA12为内部上拉到输入模式,如下图所示



 

b.    在while循环中写出如果按下按钮,则在串口输出Pressed字样,循环代码如下图所示


c.    下面是输出图示


4.    编写Cube程序,配置PA12下降沿触发中断,程序中设置两个全局变量,一个为计数器,一个为标识。当中断触发时,计数器加1,并设置标识。在主循环中判断标识,如果标识置位则清除标识并通过串口输出计数值

a.    配置PA12下降沿触发中断,配置过程如下



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值