这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【手势翻页笔】+过程帖,搭建开发环境

共12条 1/2 1 2 跳转至

【手势翻页笔】+过程帖,搭建开发环境

专家
2024-04-01 01:18:40     打赏

为了配合NUCLEO-H503RB开发板,我去下载了最新版的CubeMX(6.11)和CubeIDE(1.15.0)软件。有了CubeMX就不需要通过模板方式自己建工程了。只需要在CubeMX中选好单片机型号或者开发板型号,在图形界面设置单片机各个设备的各个属性等必要的参数后,选择生成代码即可。操作过程以图示方式记录下来。

1、打开CubeMX

图片1.png

2、点击“INSTALL/REMOVE”,下载、安装你使用的开发板的单片机型号

这一步会稍微花点时间,等待新窗体。

图片2.png

在这个窗体,选择你需要安装的单片机型号。我之前已经安装完了STM32H5系列的,所以他左侧已经是绿色的标记状态。

图片3.png本次为了显示完整的过程,我重新选择一个型号()STM32H7系列的),作为示例进行安装。

图片4.png点击“Install”

图片5.png

等到下面那个进度条完全填满后,会出现安装完成的提示。中间会有提示,要统一协议之类的。

图片6.png

选择“同意”后,点击“Finish”。同样,安装过程会花些时间,您打可以出去喝口茶,歇歇气。我的理解,这个下载,其实就是下载库文件支持,方便你后续开发用到的资源。

图片7.png安装完成后,可以关闭这个窗体了。接下来,开始配置工程中用到的资源了。以闪烁LED工程为例,在这里我以开发板为基础进行设置。点击“ACCESS TO BOARD SELECTOR”,

图片8.png选择好后,点击右上角的“Start Project”

图片9.png

这个提示的恣意,大概是会自动按照开发板提供的资源(按钮、LED、串口等)做缺省配置。选择“Yes”后继续,

图片10.png

图片11.png到这里,就可以进行配置了,画面上单片机的管脚已经变绿发的,就是之前选择“Yes”后,系统根据开发板提供的资源,进行了自动配置。在这里,假设我后面要使用两个GPIO口模拟I2C方式驱动OLED,以及在另外使用两个IO口模拟I2C方式驱动手势传感器。实际上只要I2C设备的地址不用,是可以使用一组I2C访问不同的外设的。但是由于开发板的排针在正常使用时,只能接一个排针只能接一个杜邦线,所以这里选择了两组I2C,即四个GPIO口来处理OLED和手势传感器。

在选择之前看一下电路图以及开发板已经用到的资源中使用的GPIO口,这样避免出现一个GPIO口被重复使用。

电路图:

被使用的资源

-------------------------------------------------------------------------------------------

1、用户按钮-------------B1 -------------PC13

2、用户LED2 ----------- LD2------------PA5

3、一组串口------------T_VCP_RX---- PA3

                                     T_VCP_TX----- PA4

4、另一组串口--------ARD_D1_TX--PB14

                                  ARD_D1_TX--PB15

5、被USB占用的资源---PA9、PA11、PA12、PC10、PD2

6、下载口使用得资源---PA13、PA14、PA15、PB3

--------------------------------------------------------------------------------------------

因此,我准备使用PC4、PB8、PC2、PC3作为两个I2C设备的接口使用。单片机的PIN分布图上,选择这两组引脚,作为OUTPUT,上拉模式使用,并分别命名为OLED_SCL、OLED_SDA、HAND_SCL、HAND_SDA。为此转到“System view”

图片14.png点击“GPIO”,逐个修改我们刚添加的那几个GPIO的用户标签(User Label)。标签以外的属性设置,参考用户LED的就行,实际上不用改,使用默认值。

图片15.png其它PIN、定时器、串口等配置,就默认使用系统提供的设置,不用改。

接下来,设置工程名称,进入“Project Manager”配置,设置好工程名称(Project Name)、保存地址(Project Location),开发用的工具IDE(Toolchain/IDE),其他项目不用改。

图片16.png到这一步就可以用来生成代码了。在这里,我说明一下哈,我之前做单片机开发,习惯使用Keil,但对于一个用惯了Eclipse的人,既然ST公司提供了CubeIDE,那自然是要使用这个开发工具的。所以在生成代码的时候,我更喜欢用CubeIDE的方式生成工程代码。

点击右上角的“GENERATE CODE”,

到了这一步,代码的省城工作就已经完成了。我这里没有选择“Open Project”,而是选择“Close”,是因为我的电脑装了太多软件,对文件的扩展名可能有其它文件打开。我是在打开CubeIDE后,导入这个工程的。

另外为了以后能再次利用这个配置做扩展工作,可以考虑保存这次的而配置工作。通过菜单中的“File”的“Save Project”执行。

图片19.png接下来,打开CubeIDE,

图片20.png在“Project Explorer”区域,点击鼠标右键,在弹出菜单上选择“Import...”,或者在菜单“File”中选择“Import...”,

图片21.png

选择已经存在的项目(“Existing Projects into Workspace”),点击“Next”,

图片22.png

在根目录(Select root directory)那一栏输入你刚在在CubeMC中保存工程的地址,确认回车后,如果没有问题,在“Prohects”中会出现你刚刚由CubeMX生成的工程。点击“Finish”,执行导入处理。

如果在导入界面中勾选了“Copy projects into workspace”这个选项的话,那么由CubeMX生成的工程会被复制一分到CubeIDE所配置的工作空间中。以后通过CubeMX对工程的后续修改,将不会体现到CubeIDE中的这个工程上,因为是被复制过来的,在物理上没有任何关系了。如果不勾选这个选项,意味着在CubeIDE中是对工程的引用,是链接。

导入完成后,我们可以立即看看代码中对GPIO的声明和初始化,和之前在CubeMX中的设置是不是一样。

图片23.png初始化的处理在main.c的MX_GPIO_Init函数中。

图片24.png为了验证是否有问题,我们可以在main函数的主循环中,让这个四个GPIO口周期性交替输出高低电平,就是类似于让LED闪烁的方式来验证。编译程序并下载到开发板上,通过示波器,或者自己搭建类似于LED驱动的那种方式,通过观察LED亮灭来验证。

在main函数中加入的代码是:

...
// 这部分代码是串口输出信息
usrtx=1;
//printf("Hello EEPW & DigiKey! Hello STM32H503!\r\n");
printf("start test 1 ... \r\n");
usrtx=3;
printf("Hello EEPW & DigiKey! Hello STM32H503!\r\n");
printf("start test 3 ... \r\n");
...
 
/* USER CODE BEGIN WHILE */
while (1) {
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(USER_LED_GPIO_Port, USER_LED_Pin);
// 测试四个I2C用的GPIOK口
HAL_GPIO_TogglePin(HAND_SCL_GPIO_Port, HAND_SCL_Pin);
HAL_GPIO_TogglePin(HAND_SDA_GPIO_Port, HAND_SDA_Pin);
HAL_GPIO_TogglePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin);
HAL_GPIO_TogglePin(OLED_SDA_GPIO_Port, OLED_SDA_Pin);
HAL_Delay(500);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
...

主循环中加入的代码是/* USER CODE END WHILE */和/* USER CODE BEGIN 3 */之间的部分。

串口输出信息:

图片26.png

程序运行的效果:

GPIO初始.gif

到这里,就算完成初步的工作了。接下来是要追加OLED显示方面的代码和手势传感器的数据通讯以及判定用代码了。























专家
2024-04-01 01:22:50     打赏
2楼

性子急,开箱帖回头补上哈


专家
2024-04-01 06:57:09     打赏
3楼

谢谢分享


专家
2024-04-01 08:04:13     打赏
4楼

不错啊


高工
2024-04-01 09:25:36     打赏
5楼

楼主都已经收到货物了?


高工
2024-04-01 10:24:01     打赏
6楼

楼主收货神速啊,我等了1个半星期都没收到板子


高工
2024-04-01 10:28:32     打赏
7楼

哇!楼主好速度!


高工
2024-04-01 12:59:29     打赏
8楼

谢谢分享


高工
2024-04-01 13:11:38     打赏
9楼

谢谢分享


助工
2024-05-18 00:43:58     打赏
10楼

神速啊


共12条 1/2 1 2 跳转至

回复

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