STMCU小助手
发布时间:2022-9-4 16:54
|
1、基础工程建立 首先通过STM32CubeMX建立基础工程,首先开启RCC并将时钟配置到72M主频:
配置串口1用于调试打印:
在配置个LED灯的IO:
将HAL用到的系统滴答定时器切换成定时器7,因为SysTick定时器我们要给rtthread使用:
中断分组设置为4:
取消掉这三个函数的生成,因为rtthread已经把这三个函数生成好了:
最后输出工程:
2、移植rtthread-nano 从rtthread官网下载解压rtthread-nano源码并解压,我们移植需要以下文件:
将上图文件拷贝到工程目录,如下图所示:
需要将rtthread添加进工程的文件有: libcpu\arm\cortex-m3\cpuport.c libcpu\arm\cortex-m3\context_rvds.S src目录下的所有文件 board.c 如下图所示:
然后添加头文件包含:
尝试初次编译,直接编译通过:
接下来还需要修改一下源码,适配HAL库。 首先检查一下rtconfig.h配置文件的各项,在keil中打开可以切换为图像化配置,基本默认配置即可:
然后适配时钟,打开board.c文件,找到rt_hw_board_init函数,改为以下:
接着在main.c文件中写一个外设初始化的函数chip_init,将CUBE生成的外设初始化函数中该函数内,用rtthread初始化列表的形式进行外设初始化:
然后重定向rt_kprintf函数到串口1:
main函数中创建一个LED灯的任务:
最后编译运行就可以了:
3、添加finsh组件 将finsh源码和头文件包含加入工程:
在rtconfig.h中添加宏定义: #define RT_USING_FINSH
将mian函数中的打印屏蔽掉,要不然不方便finsh的使用:
然后编译下载运行:
注意xshell的设置,rtthread是用\n作为回车换行,而xshell默认为\r\n才是回车换行,所以xshell需要这么设置才能正常显示rtthread的打印:
———————————————— 版权转载自:雍正不秃头 |
微信公众号
手机版