(2)注释掉stm32f10x_it.c中的HardFault_Handler(void),PendSV_Handler(void),SysTick_Handler(void),因为rtthread对它们进行了实现,不删除会导致重复定义错误。 (3)Error: L6218E: Undefined symbol rt_thread_create (referred from main.o),打开rtconfig.h中的堆使用宏#define RT_USING_HEAP,系统中采用动态...
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { if(tim_baseHandle->Instance==TIM12) { __HAL_RCC_TIM12_CLK_ENABLE(); } else if(tim_baseHandle->Instance==TIM13) { __HAL_RCC_TIM13_CLK_ENABLE(); HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 2, 0); HAL_NVIC_EnableIRQ(...
常用的RTOS有著名的Free RTOS,国产的RT_Thread等,当然熟悉的任务调度的话可以自己手写一个任务调度器。我之前使用的是RT_Thread,开始基本上提出需求,芯片供应商负责移植。自从换了一家小公司之后就不再有压榨供应商这个说法,基本上都要自己来,在这里记录一下前段时间搞的基于stm32 的RT_Thread工程移植。 RT_Thread...
DriversDrivers/CMSIS Drivers/STM32L4xx_HAL_DriverCMSIS是存放库函数的,另一个是HAL库,设备驱动是直接放在Drivers文件下 MDK-ARM使用keil5创建工程自动生成的文件夹 rt-thread rt-thread/components/finsh rt-thread/components/drivers rt-thread/include rt-thread/libcpu rt-thread/src finsh是一个好用的命令行...
由于RT-Thread已经初始化了串口1,我以我们不能使用这个。我们可以使用UART6。 2017-04-06_16-57-29.gif 打开工程,将代码偷走,蓝色部分就是我们要拿走的代码 2017-04-06_17-01-11.gif 移植代码 在void HAL_UART_MspInit(UART_HandleTypeDef *huart)中,添加USART6的代码: ...
在rt-thread官网中给出了nano版本增加控制台的示范例程,主要是增加了一个接受队列。(如果用rt-thread studio配置控制台,接受好像用的是查询模式,如果只是单纯一个控制台,不干其他事情好像也没啥事) #ifdef RT_USING_FINSHchar rt_hw_console_getchar(void){int ch=-1;if(__HAL_UART_GET_FLAG(&handle,UART...
HAL_TIM_OC_MspInit(tim); 5.配置PWM通道 这时候PWM的驱动就已经做好了,打开board.h ,打开需要使用的PWM通道 比如你使用的是TIM1,就是 pwm1, 通道同理。 #define BSP_USING_PWM2 #define BSP_USING_PWM2_CH1 6.保存编译 这时候我们需要使用的驱动已经全部构建完成了,接下来就使用RT-Thread的接口来完成用...
我们这里只是把裸机使用的文件改成在 RT-Thread 上使用的文件。 2.1 移植步骤 首先我们把驱动文件都拷贝过来(Datadef.h 是我个人习惯使用的一些数据类型宏定义): 编译过后,还是正常通过除了上面报的那个延时函数的警告: 这是因为delay_us()这个函数在HAL库中是没有的额,以前使用裸机的时候是我自己实现的,这里我们...
这是STM32 HAL库基本使用导致的,因为博主开始直接使用程序移植,有些细节的地方没有第一时间发现。 其实最根本的原因在于,串口开启之时是如何使能中断接收的! 是用__HAL_UART_ENABLE_IT宏定义使能中断 还是HAL_UART_Receive_IT这个函数使能中断? 这是STM32的基础使用问题,复制的分析调整过程这里就省略了,我只把最...
我们这里只是把裸机使用的文件改成在 RT-Thread 上使用的文件。 2.1 移植步骤 首先我们把驱动文件都拷贝过来(Datadef.h 是我个人习惯使用的一些数据类型宏定义): 编译过后,还是正常通过除了上面报的那个延时函数的警告: 这是因为delay_us()这个函数在HAL库中是没有的额,以前使用裸机的时候是我自己实现的,这里我们...