求CC2640 SimpleBLEPeripheral + UART 最终解决方案
HI,
各位好,我想在SimpleBLEPeripheral工程中添加UART功能,本来以为很简单功能,没想到一搞就是三天。目前情况虽然搞定了,任然还有一些疑问。参考了TI论坛的一些帖子,都不是能够说得很明白。(请允许我细细说来,大神们请不要走,耐心听我说,真的不想听,请直接跳到最后一行的问题(*^__^*) 嘻嘻……)
1.最开始参考HostTest工程,移植带NPI的串口到SimpleBLEPeripheral中,只要创建UART的任务,程序就直接挂掉。
2.没有办法了,上论坛找帖子,发现了 http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/83016.aspx ,一步一步按照上面说的做,不带NPI了,看上去很代码很简洁了,但是问题还是没有解决。一创建UART任务,程序就挂掉。
3.继续逛论坛,发现了:http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/104757/279723.aspx#279723,也是按照网友说的,将SimpleBLEPeripheral任务优先级设为2,uart的优先级设为1(另外网友还说,需要删除一些不需要的驱动程序,但是我没有发现有啥不需要的驱动程序,这个步骤就没做。)问题还是没有解决。
4.继续逛论坛,发现:http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/81627/204765.aspx#204765,按照帖子说的,将UART初始化的代码写在SimpleBLEPeripheral初始化中,在发出广播时打印Helloworld。这次成功了。(终于看见曙光啦)
5.我又将在Main函数中注册UART任务的代码打开了,但是在SimpleBLEPeripheral初始化的时候去UART初始化,这样就能满足我的要求了。
提问:为什么UART初始化在UART的任务中做会导致程序蹦掉,在SimpleBLEPeripheral任务中就成功了?
都这么久过去了,是否有大神能对这个问题作出解释?
官方的做法就是如下,他不需要创建一个专门的串口task。具体怎么蹦,请详细描述下。
http://processors.wiki.ti.com/index.php/Cc2640_Adding_a_UART_or_SPI_driver_to_a_Sample_Project
Hi TY,
您有没有发现创建UART的TASK后,程序就会死掉的问题?
如果按照我给的Link做,没有这个问题。 另外,这个不会创建另一个任务,没有专门的UART TASK.
HI HY,
按照这个LINK,不创建Task,UART就好了。请问这个rtos是不允许用户创建Task么?