PRi——自行车码表

自行车码表

一、实验目的

1   理解MCU上电启动过程;
2   掌握使用Cube库来编写STM32裸机程序的方法;
3   掌握使用Cube库来编写GPIO和UART程序的方法;
4   掌握使用Cube库来编写中断响应程序的方法;
5   理解前后台程序模式;
6   掌握在STM32F103上编写裸机程序并下载运行的方法

二、实验内容

1.  画出你所实际实施的连接示意图;
2.  描述所做的实验步骤,给出各步操作的命令和结果;
3.  给出你写的源代码,并加以解释;
4.  给出试用的结果。

三、实验器材

硬件
1   STM32F103核心板板一块;
2   microUSB线一根(供电);
3   STLink板或USB串口板一块。

软件
交叉编译软件。
还需要安装一些其他的软件和补丁等等

四、实验步骤

1、实验准备

    安装STM32CubeMX,直接一步一步安装,打开程序之后界面如下:

这里写图片描述

直接新建工程,选择核心板的型号为STM32F103C8,点击OK。

这里写图片描述

点击 project->settings,进入项目设置。填写完项目名称、位置以及工具链。如下图所示:

这里写图片描述

全部设置后之后,点击下面的OK按钮,会跳出一个警告:

这里写图片描述

点击yes 开启自动下载模式,全自动安装:

这里写图片描述

此外,还可以进行本地安装,选择help -> Install New Libraries 进入库管理界面:

这里写图片描述

安装keil V5,下载安装包直接安装,但是要在注册机上获得LIC。

(2)实验连接图
连接图如下:(是已经全部连接好的连接图,但是在前几步的时候可以不用全部连接好)

这里写图片描述

其中,ST-LINK接四根线3.3V、GND、SWDIO、SWCLK分别对应STM32板子上的3.3V、GND、DIO、DCLK。此为烧录用的线路。而PA9、PA10为串口通信所用的线路。所以图中使用了两个USB口。

面包板上线的连接方式为从引脚出来之后经过按钮到GND。

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

    进入STM32CubeMX,按照实验中的要求,在右侧芯片设置中,将PA12、PA11定为输入(接按钮),PA10、PA9分别定为TX、RX(接电脑串口)。

这里写图片描述

    同时在左侧的配置中,将USART1的模式定为Half-Duplex。这步所对应生成的代码与实验攻略中的代码略有差别。但是在不指定模式的情况下,PA9以及PA10会被认为是GPIO_Output而与PA11一起进行初始化,而不是TX、RX口。所以在此选择一个模式。

这里写图片描述

    配置完成,接下来就是代码生成,点击按钮等待就可以了。

这里写图片描述

    生成结束后,就会在项目的文件夹下面生成一个由设置决定的工程文件夹,直接点击Open Project,打开项目工程文件。中间还会需要安装一个依赖包,继续同意即可。
    现在可以从下面的图中看到,STM32CubeMX帮我们生成好了一系列的基础文件:

这里写图片描述

    代码生成完成之后,基本的函数结构已经生成了。但是还需要自己手动填写一些代码。而stm32f1xx_hal_msp.c中所需填写的函数与Half-Duplex模式一致,所以不需要进行大幅度改动。只需要将攻略的几行代码填入即可。
    void UART0_Init(UART_HandleTypeDef* UartHandle){
    UartHandle->Instance = USART1;
    UartHandle->Init.BaudRate = 9600;
    UartHandle->Init.WordLength = UART_WORDLENGTH_8B;
    UartHandle->Init.StopBits = UART_STOPBITS_1;
    UartHandle->Init.Parity = UART_PARITY_NONE;
    UartHandle->Init.HwFlowCtl = UART_HWCONTROL_NONE;
    UartHandle->Init.Mode = UART_MODE_TX_RX;

    HAL_UART_Init(UartHandle);
}

int main(void) {
...
    UART_HandleTypeDef UartHandle;
    UART0_Init(&UartHandle);

    while (1) {
        HAL_UART_Transmit(&UartHandle, (uint8_t*)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值