这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【手势翻页笔】+基本作业:基本配置,点灯和串口输出

共6条 1/1 1 跳转至

【手势翻页笔】+基本作业:基本配置,点灯和串口输出

菜鸟
2024-04-24 16:37:04     打赏

基本作业:1.使用STM32CubeMX图形化配置软件,配置STM32H503RB芯片的内部参数,外设参数,引脚分配等功能;
2.在学习完成全部讲解与实验后,在STM32H503RB开发板成功烧录程序,并编写软件代码实现LED灯周期闪烁,串口打印字符串"Hello EEPW & DigiKey! Hello STM32H503!";

使用工具:STM32CubeMX + keil。STM32CubeMX软件负责图形化配置板卡,keil负责编程。

step1:打开STM32CubeMX软件,这里我们通过板卡来创建工程。

image.png

hw1.png

image.png

在这里,可以通过图形化方式配置管脚功能,和单片机时钟、通讯等的配置。这里需要驱动LED灯和串口,就需要阅读Nucleo-H503RB板子的原理图。从原理图可以看出,有个LED2是接在PA5脚的。这里要留意,这个Nucleo板子上有两颗STM32芯片,其中一颗是用来做STLINK的烧写用芯片。这里自己犯了个错,看见LED1灯接在了管脚PA10上,就想着去驱动PA10,结果LED1就是没反应,再仔细看电路图,才发现搞混了两颗芯片,看错了图。

image.png

image.png

image.png

点击左侧,可以看见PA5已经被设置好了,给了个标签“USER_LED”,一会在代码中就可以直接使用这个标签了。

image.png

image.png

再看电路图,得知stlink的串口是接入到USART3上,并且USART3已经做过配置,波特率使用的是115200。其它部分暂时不做改动,点击“Project Manager”写入工程名,选择自己的编程工具(我这里选择MDK-ARM),最后点击“GENERATE CODE”即可生成对应的工程。

image.png


step2:使用keil打开工程。

image.png

在user/core下找到main.c文件,打开进行编辑。找到文件中的“/* USER CODE BEGIN 3 */”字段,在这后边添加代码:

    /* USER CODE BEGIN 3 */
    HAL_GPIO_TogglePin(USER_LED_GPIO_Port,USER_LED_Pin);
    HAL_Delay(500);
        HAL_UART_Transmit(&huart3, "Hello EEPW & DigiKey! Hello STM32H503!\n", sizeof("Hello EEPW & DigiKey! Hello STM32H503!\n"), 100); 
  }
  /* USER CODE END 3 */

这里留意,添加的代码一定要在 “/* USER CODE BEGIN 3 */”和 “/* USER CODE END 3 */”之间,这样之后如果项目有修改,使用STM32CubeMX修改项目配置时,自己的代码能够被保留。检查keil的烧写配置,烧录工具选择STLINK ,点击编译,然后就可以正常烧写了。烧写完成,按一下复位键(reset)就可以看见板子上的绿色LED灯不停地闪烁,使用串口通讯工具,设置波特率115200,打开串口,就可以收到串口传来的数据了。

image.png

image.png

step3:修改一下,使用printf输出。

这里的串口输出太麻烦,不够优雅。C语言中,常用的输出语句是printf,这里将printf重定向到串口上。首先添加库(stdio.h)的引用


/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

再重构fputc函数


/* USER CODE BEGIN 0 */
int fputc(int ch, FILE *f) { 
  HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xffff); 
  return ch; 
}
/* USER CODE END 0 */

然后,在keil的编译环境中添加use MicroLIB的支持。就可以在代码中使用printf来输出信息到串口啦!

image.png

homework_base.zip


高工
2024-04-24 21:11:56     打赏
2楼

感谢分享


专家
2024-04-25 06:39:56     打赏
3楼

看看,学习一下


高工
2024-04-25 11:01:36     打赏
4楼

感谢分享


院士
2024-04-26 10:29:46     打赏
5楼

写得还是蛮详细的嘛


专家
2024-04-26 22:05:44     打赏
6楼

很详细 很仔细,赞


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]