自行车码表
一、实验目的
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*)