RT-Thread
文章平均质量分 69
夏侯城临
这个作者很懒,什么都没留下…
展开
-
NUCLEO-F411RE RT-Thread 体验 (10) - GCC环境 AT24CXX的使用
这里我放在了User目录下,里面所有的.c文件都会被编译进去。原创 2023-06-23 16:49:46 · 246 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (9) - GCC环境 PWM的驱动移植以及简单使用
驱动位于drv_pwm.c文件中,components层代码位于rt_drv_pwm.c中。原创 2023-06-22 15:13:57 · 1017 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (8) - GCC环境 TIM定时器的驱动移植以及基本使用
定时器驱动文件位于drv_hwtimer.c中,对应components层的文件位于rt-thread/components/drivers/hwtimer/hwtimer.c中。原创 2023-06-22 09:39:05 · 717 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (7) - GCC环境外部中断的使用
NUCLEO-F411RE开发版的蓝色按键对应PC13管脚,我们将其配成外部中断的方式,并设置低电平触发。原创 2023-06-22 06:10:01 · 693 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (6) - GCC环境 I2C驱动移植以及i2c-tool的编写
RT-Rhread这里用的是软件模拟i2c,stm32的驱动里并没有找到硬件i2c的驱动,但是在GD32里面却有硬件i2c的驱动,有兴趣的小伙伴可以根据gd32的代码写一份stm32硬件I2c的驱动。rtconfig.h里添加i2c的配置Makefile里添加i2c的编译这样修改后,输入list_device,会列出i2c1设备。原创 2023-06-21 14:54:09 · 600 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (5) - GCC环境 串口的简单使用
使能BSP_USING_UART1后,drv_usart.c中会根据uart_config.h中关于UART1_CONFIG进行串口初始化,并注册到device设备中,但是关于gpio配置成usart1功能的初始化,要在HAL_UART_MspInit里添加。这个函数其实个WEAK函数,调用的地方在drv_usart.c中的stm32_configure函数中。usart1默认用的PA9 PA10,如果要修改的话,就修改下面的函数即可。*/*/原创 2023-06-21 05:55:46 · 125 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (4) - GCC环境 LED控制以及CMD命令的添加
前面pin驱动移植后,我们使用rt_pin_mode() rt_pin_write() 控制gpio拉高拉低,从而控制LED灯的闪烁。整个pin的初始化流程在rt_hw_board_init里。rt_hw_pin_init中最重要的是rt_device_pin_register这个函数。rt_device_pin_register这个函数里_hw_pin.parent应该没啥用,最重要的是_hw_pin.ops = ops;原创 2023-06-21 05:26:22 · 342 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (3) - GCC环境 uart驱动的移植以及console的使用
在第一节里,我们用stm32cubemx将pa2 pa3管脚配置成usart2,用于跟st-link虚拟串口的打印用,那么我们先重定向printf函数,看这条通道是否行的通。在rt-thread线程里调用烧录进板卡后,打印如下:说明硬件连接与软件配置都没问题。原创 2023-06-20 06:28:00 · 291 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植
前面控制LED的函数,其实还是调用的hal的函数,RT-Thread分离了驱动层与应用层,驱动层往下对接hal库,往上对接pin组件。驱动层代码路径如图:pin组件代码位于。原创 2023-06-19 23:08:27 · 452 阅读 · 0 评论 -
NUCLEO-F411RE RT-Thread 体验 (1) - GCC环境 RT-Thread 的移植
平时用的是iMac以及MacBook,所以烧录我用的是pyocd,将烧录命令添加到Makefile里,执行make的时候,就会自动烧录软件。因为entry往下执行,会调用到rtthread_startup()函数,这个函数里的rt_hw_board_init需要自己定义。因为这个rtconfig.h的配置比较全,所以也包含了finsh组件,而我们前面并没有将finsh编译进去。编译通过,烧录进去后,灯在闪烁,那么RT-Thread跑起来了吗?很遗憾,并没有,现在还是裸机程序再跑,继续修改。原创 2023-06-19 22:34:45 · 499 阅读 · 0 评论