你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

NUCLEO-C031C6开发板测试1——点灯及用户按键

[复制链接]
老牛洋车 提问时间:2025-3-14 16:25 / 已解决

在去年年末的大转盘活动中有幸获得了一块NUCLEO-C031C6开发板,春节前收到后随即开始建立开发平台和查找有关的资料。准备先测试相关的外设,然后驱动一块3.5寸的TFT彩屏,移植MAX30102血氧心率传感器,制作一个家用的血氧心率监测仪。

理想很丰满,现实却挺骨感。经过近两个月的测试,却发现C031C6的内存实在太小了,添加了彩屏驱动代码之后,内存就爆满了,无法完成编译(见下图),最后想方设法优化代码,才勉强完成彩屏的驱动,至于移植MAX30102的代码则成了空想。看来要实现原来的设想,也许需要新推出的C071或者C091的开发板才能够胜任。

现将这两个月的测试过程进行总结整理,并陆续发布出来让大家评论,并希望各位指正其中的不足或错误。

和大家一样,拿到开发板并建立好开发平台之后,首先就是测试点灯及板载的用户按键,这个测试是最容易实现的。

进入CUbeMX配置平台,选中开发板之后,按照默认的配置,选择LED,BUTTON和ComPort,生成代码,

Cube_11.png

然后在主函数的循环中添加代码:

``

BSP_LED_Toggle(LED_GREEN);

HAL_Delay(500);

编译后下载到开发板上,板上的绿色LED灯便闪亮起来。

按键测试也不复杂,只不过是我为了实现长短按键的功能,在延时函数中走了一点弯路。我是采取中断方式读取按键,在按键中断处理代码中一旦加入了HAL_DELAY()函数就无法运行,才知道在中断处理中不能使用系统提供的延时函数,需要自己写空循环的延时函数。在自己添加延时代码时又遇到坑,原来设置循环变量时需要使用volatile前缀,否则在编译时就会被优化,延时函数不起作用。这是我通过发帖后得到坛友提示才知道的(链接https://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=645421&pid=2681426&page=1&extra=#pid2681426)。

实现长短按键的过程是先定义一个全局变量keys,在中断处理函数内对这个变量不断自增。在主循环中判断keys的值,若大于零就进行按键功能的处理,并根据数值的范围来确定按键的不同功能,实现多个按键,按键处理好之后再将keys的值归零。用这种方式可以轻易地识别点按、正常按键和长按三种模式,用户稍加训练则可以实现更多的模式。

按键中断处理函数如下,可以添加在main.c文件中:

``

/*****

  • 用户按键实验 *****/ void BSP_PB_Callback(Button_TypeDef Button) { if(HAL_GPIO_ReadPin(BUTTON_USER_GPIO_PORT,BUTTON_USER_PIN) == RESET){ while(HAL_GPIO_ReadPin(BUTTON_USER_GPIO_PORT,BUTTON_USER_PIN) == RESET){ if(keys<250){ keys++; delay_ms(10); } } } }

在主循环中对长短按键进行识别的代码如下:

``

if(keys>0){ // printf("Keys=%d\n\r",keys); if(keys<40){ if(TFT_BL>0) TFT_BL -= 10; }else{ if(TFT_BL<245) TFT_BL += 10; } keys = 0; // printf("TFT_BL=%d\n\r",TFT_BL); htim3.Instance->CCR3 = TFT_BL; }

收藏 评论3 发布时间:2025-3-14 16:25

举报

3个回答
STMCU-管管 最优答案 回答时间:2025-3-17 08:54:35
老牛洋车 发表于 2025-3-14 16:46
[md]我对如何在编辑器中添加代码还不熟悉,下面补充上面代码的截图:

1、延时函数

建议分享贴发布在话题—STM32话题——文章——分享。
老牛洋车 回答时间:2025-3-14 16:46:25

我对如何在编辑器中添加代码还不熟悉,下面补充上面代码的截图:

1、延时函数

delay_0.png

2、按键中断处理函数

key_3.png

3、按键处理函数

key_2.png

老牛洋车 回答时间:2025-3-19 08:47:07

STMCU-管管 发表于 2025-3-17 08:54
建议分享贴发布在话题—STM32话题——文章——分享。

好的。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版