STM32F103C8T6 配置串口下载环境 (新手记录)

开发工具:STM32Cubemx,keil5

固件包:STM32Cube_FW_F1_V1.8.0

本文只写配置串口下载的环境,要下载具体程序只需在环境中配置程序所需的各种外设即可

先说我自己遇到的容易出错的问题:

1.我使用st-link调试器自带的RX和TX接口,但是接线时我将RX和TX接口分别接到了单片机的PA10和PA9引脚。(因为PA10和PA9的默认复用引脚分别为RX和TX,我直接对着接了),要注意无论用USB转TTL转换器还是st-link调试器自带的RX、TX接口,都要将转换器的RX接口接到单片机的TX接口,TX接到RX接口。

2.烧录前boot0要置1,boot1要置零。对应图中圈中的两个跳线帽,把帽子盖到0侧即置零,盖到1侧置1。如果不清楚哪个是boot0和boot1,可以直接尝试排列组合,反正就01和10两种可能。

3.在stm32cubemx命名工程时最好不要使用中文,中文路径会读取出错。

步骤:

1.打开stm32cubemx建立新工程,(具体步骤参考9.4的贴)。点击PA10和PA9引脚分别选择USART1_RX和USART1_TX。

2.在左侧Connectivity中点击USART1(Universal Synchronous Asynchronous Receiver),在Mode中选择Asynchronous(异步通信),下方Parameter Settings中如图设置,在NVIC Settings中勾选USART1 global interrupt.

3.上面两步配置好了单片机RX口和TX口的代码,具体程序根据自己需求配置其他外设,配置好后,保存工程(步骤参考9.4的贴),右上角生成代码。打开工程后,点击魔法棒,点击Output,圈中Create Hex File(创建Hex文件,串口下载需要使用Hex文件)点击ok。

4.写好要运行的代码后编译,此时在工程文件夹内部会出现一个Hex文件。(找不到就把工程文件里面都翻一遍)

5.连接单片机到电脑,关于单片机的接线:PA10和PA9分别接TX和RX

6.打开调试工具,我这里用的SSCOM V5.13.1。点击小工具,选择STM/GD32ISP烧写器唤出右侧窗口。然后在端口号处选择单片机与电脑连接的端口。

7.点击打开文件,选择刚刚生成的Hex文件。

8.点击开始下载,程序成功通过串口下载到单片机

STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,配置串口通常涉及初始化USART外设。以下是使用STM32CubeMX或标准库函数配置串口的基本步骤: 1. **包含头文件**: ```c #include "stm32f1xx_hal.h" ``` 2. **初始化GPIO**: 确保RX和TX引脚已连接到相应的GPIO,并配置为AF7(通用推挽IO)模式,例如: ```c GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10; // RX and TX pins (example) GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); ``` 3. **配置USART**: - 配置USART1作为串口通信实例: ```c USART_HandleTypeDef UsartHandle; USARTHandle.Instance = USART1; ``` - 初始化USART结构体,设置波特率、数据位数、停止位、奇偶校验等: ```c USART_InitStruct.BaudRate = 9600; // 设置波特率 USART_InitStruct.WordLength = USART_WordLength_8b; USART_InitStruct.StopBits = USART_StopBits_1; USART_InitStruct.Parity = USART_Parity_No; USART_InitStruct.HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStruct.Mode = USART_Mode_Tx | USART_Mode_Rx; ``` - 开始USART时钟: ```c RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); ``` - 实例化并配置USART: ```c HAL_UART_Init(&UsartHandle, &USART_InitStruct); ``` 4. **启用中断**: 如果需要接收中断,可以开启RXNE(接收就绪)中断,并注册回调函数处理接收到的数据。 5. **启用串口**: ```c HAL_UART_Cmd(&UsartHandle, ENABLE); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值