stm32智能手表-基于freertos

这个项目是网上其他博主项目的复刻,可以直接下载使用,使用的是hal库,链接如下:

通过网盘分享的文件:MyWatch.zip
链接: https://pan.baidu.com/s/1vxnK8vP9gcF5v1cZ6VPqnQ 提取码: ktkt

尽管这个项目很基础,而且看起来烂大街了,但也让我学会了许多,包括c语言和freertos等等

以下是我学习过程中所遇到的知识点和问题,分享给大家,希望大家在复现这个项目时有更好的理解。

1.移植freertos时注意更改svc和sys还有pendsv三个原来hal库中存在的函数
2.移植u8g2时需要添加Tims_delay_us函数使用tim1进行us级别的延时
3.extern关键字是声明全局变量
4.Freertos.h头文件要在其他头文件之前
5.gpio外部中断中如果要使用hal_delay函数,需要提高hal库时基的中断优先级TICK_INT_PRIORITY大于当前中断的优先级,无论是systick还是其他时间基本单元,要不然会执行当前中断而不会进行延时从而程序卡死
6.如果是exti9_5这种共线中断可以在irqhandle函数中使用__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_7)来判断是哪一个触发
7.freertos和u8g2移植时会占用内存过大可以设置freertocconfig.h中的configTOTAL_HEAP_SIZE来减少freertos堆栈的占用,一般一个任务128字节的堆栈
8.c语言结构体不能够赋初始值,c++11可以
9.要在hal库的中断中调用freertos的api函数,hal库对应的函数中断优先级要小于configMAX_SYSCALL_INTERRUPT_PRIORITY,要位于freertos的管理范围内
9.__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_7)!=RESET单片机中多使用!&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值