|
1.工程新建,楼主比较懒,习惯用STM32cubeMX生成代码,新建过程中选Nucleo-L496ZG板子的工程,为了减少配置,我直接将不用的MCU管教关闭了, 具体打开的外设有 LPUART1 ,LED_Blue,LED_Red,系统时钟用内部时钟。调试选择 Serial Write。(后续要用JTAG它调试 ) 2. 配置FreeRTOS,和外设 关于L496ZG串口波特率配置为9600以上,具体原因看帖子 https://www.stmcu.org.cn/document/detail/index/id-218816?lat led和串口的配置我就不放图了,可以参考别人的帖子, 3. 4.在串口文件中 添加printf重定义文件 ,类型就是原子哥的方法 1) #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((LPUART1->ISR&0X40)==0);//循环发送,直到发送完毕 LPUART1->TDR=(uint8_t)ch; return ch; } #endif 2) 添加测试代码 led任务 void StartDefaultTask(void const * argument) { for(;;) { HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); osDelay(500); } } printf 代码 /* StartTask03 function */ void StartTask03(void const * argument) { /* USER CODE BEGIN StartTask03 */ /* Infinite loop */ for(;;) { printf("基于 Nucleo-L496ZG FreeRTOS 培训测试 \r\n"); osDelay(1000); } /* USER CODE END StartTask03 */ } 5 结果如下 ![]() |
微信公众号
手机版
FreeRTOS.rar
2018-4-16 23:57 上传
点击文件名下载附件
13.97 MB, 下载次数: 11
队列
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html