any012 发表于 2017-1-20 14:53:17

用的MDK5,就是用的你楼上的朋友分享的配色方案。

CUBE支持生成ECLISPE+AC6的工程了,那个配色可以修改的更好看,但对ECLIPSE不熟悉,不知道该如何用STLINK调试,现在暂时放弃了。

any012 发表于 2017-1-20 16:29:43

本帖最后由 any012 于 2017-1-20 16:35 编辑

watershade 发表于 2017-1-19 21:32
我的做法类似楼上你的osDelay具体是为什么。你既然用idle中断,那么你是如何将数据传送到邮箱的。

我的做 ...
我现在是中断接收数据后放到数组里,数组的第一位放数据的长度。
然后通过消息邮箱发送给任务。
任务通过消息邮箱后,先读出长度,然后依此复制过来存放到任务的数组里。再调用发送函数。

现在担心复制的过程中,中断又收到新的数据将原数组更新。

我还不懂内存池,现在中断接收存放在了个全局变量里。

/* usart1Task function */
void usart1Task(void const * argument)
{

      /* USER CODE BEGIN usart1Task */
      uint8_t uart1TxBuff;
      uint8_t *pMail;
      osEvent event;
      uint8_t i;
      uint8_t txLength;

      /* Infinite loop */
      for(;;)
      {
                event = osMailGet(mailQ01Handle, 0x00);
                if(event.status == osEventMail)
                {
                        pMail =event.value.p;
                        txLength = *(pMail++);
                        for(i = 0; i < txLength; i++)
                              uart1TxBuff = *(pMail++);
                        HAL_UART_Transmit_DMA(&huart1,uart1TxBuff,txLength);
                        HAL_UART_Receive_DMA(&huart1, uart1RxBuff+1, RXBUFFLEN-1);
                }
               
//                osDelay(100);
      }
      /* USER CODE END usart1Task */
}

zbber 发表于 2017-1-20 23:30:38

我的问题找到了
页: 1 [2]
查看完整版本: freertos,串口和任务通过邮箱通讯,结果任务反应很慢。