完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用cube生成了freertos工程,想用串口输出调试信息,参考的安富莱和硬石的教程。
新建工程后,有些相关宏定义需要在freertosconfig.h文件里使能,安富莱教程里是这么说的: ----------------------------------------------------------------------------- 需要在FreeRTOSConfig.h文件中使能如下宏定义: /* Ensure stdint is only used by the compiler, and not assembler. */ #if defined(__ICCARM__) || CC_ARM) GNUC__) #include extern volatile uint32_t ulHighFrequencyTimerTicks; #endif /* Run time and task stats gathering r elated definitions. */ #define configUSE_TRACE_FACILITY 1 #define configGENERATE_RUN_TIME_STATS 1 #define configUSE_STATS_FORMATTING_FUNCTIONS 1 #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ulHighFrequencyTim erTicks = 0ul) #define portGET_RUN_TIME_COUNTER_VALUE() ulHighFrequencyTimerTicks ------------------------------------------------------------------------------- 以上部分中的变量ulHighFrequencyTimerTicks,生成工程时自带了。 5个宏定义里,configUSE_TRACE_FACILITY 也是自动生成的; configGENERATE_RUN_TIME_STATS是配置cube选相时,有个选项勾选后会生成的; configUSE_STATS_FORMATTING_FUNCTIONS是自己手动添加进去的; 后两个宏定义,cube生成时是这样的: #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS configureTimerForRunTimeStats #define portGET_RUN_TIME_COUNTER_VALUE getRunTimeCounterValue 而configureTimerForRunTimeStats()和getRunTimeCounterValue()对应两个weak函数,我修改成这样了: __weak void configureTimerForRunTimeStats(void) { ulHighFrequencyTimerTicks = 0ul; } __weak unsigned long getRunTimeCounterValue(void) { return ulHighFrequencyTimerTicks; // return 0; } 教程里说还要定义个定时器,定时值要比freertos系统定时器要小。 我就用TIM4定义了个基本定时器,在其回调函数里,使ulHighFrequencyTimerTicks自加一。 任务共定义了三个,其中一个是让LED一秒反转一次。一个是一秒调用一次void vTaskList( char * pcWriteBuffer )函数并用串口1输出出来。第三个任务空。 结果LED灯不闪。屏蔽调void vTaskList( char * pcWriteBuffer )这个函数调用,就正常了。 求教:是不是有哪些地方遗漏了?望指出来。 |
|
相关推荐
1个回答
|
|
仔细检查下串口设置,可以试一下串口是否正常,在串口初始化完成后Freertos任务创建前发一条信息,看一看输出是否正常,假设正常那就是在任务中因为信号量的问题堵住了,可以跟踪一下,看看是哪条语句堵住的,然后再查原因(着重查看下堆栈的问题,Freescale设置不好有时在创建任务时可能溢出)。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1659 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1571 浏览 1 评论
998 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
695 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1617 浏览 2 评论
1877浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
663浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
529浏览 3评论
548浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 13:20 , Processed in 0.903949 second(s), Total 79, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号