void StartTask02(void *argument)
{
/* USER CODE BEGIN StartTask02 */
/* Infinite loop */
for(;;)
{
osSemaphoreAcquire(myBinarySem02Handle,osWaitForever);
share_data++;
printf("task2 share_data:%d\r\n",share_data);
// HAL_UART_Transmit(&huart1,(uint8_t*)&share_data\r\n,sizeof(int\r\n),1000);
osSemaphoreRelease(myBinarySem02Handle);
osDelay(1000);
if(osSemaphoreAcquire(myCountingSem01Handle,0)==osOK){
printf("进去一辆车 剩余空位:%d\r\n",osSemaphoreGetCount(myCountingSem01Handle));
}else{
printf("进停车场失败请稍等\r\n");
}
osDelay(500);
}
/* USER CODE END StartTask02 */
}
/* USER CODE BEGIN Header_StartTask03 */
/**
* @brief Function implementing the myTask03 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTask03 */
void StartTask03(void *argument)
{
/* USER CODE BEGIN StartTask03 */
/* Infinite loop */
for(;;)
{
osSemaphoreAcquire(myBinarySem02Handle,osWaitForever);
share_data++;
printf("task2 share_data:%d\r\n",share_data);
osSemaphoreRelease(myBinarySem02Handle);
osDelay(1000);
if(osSemaphoreRelease(myCountingSem01Handle)==osOK){
printf("出去一辆车 剩余空位:%d\r\n",osSemaphoreGetCount(myCountingSem01Handle));
}else{
printf("暂时没有车出去\r\n");
}
osDelay(500);
}
/* USER CODE END StartTask03 */
}
![](https://img-blog.csdnimg.cn/direct/f5e568a919324f11ae8c8b1b2ca355c5.png)
![](https://img-blog.csdnimg.cn/direct/62da5763c5524421b98fb6aaeca3d78e.png)
void StartTask02(void *argument)
{
/* USER CODE BEGIN StartTask02 */
/* Infinite loop */
HAL_UART_Receive_IT(&huart1,&Rx_data,1);
for(;;)
{
fun(flag);
osDelay(1000);
}
/* USER CODE END StartTask02 */
}
/* USER CODE BEGIN Application */
void fun(int flag){
if(flag==1){
HAL_Delay(3000);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
}
if(flag==2){
HAL_Delay(2000);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
}
if(flag==3){
HAL_Delay(1000);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_2);
}
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
if(huart->Instance==USART1){//判断是否是串口1
//处理Rx_data中接收的数据
if(Rx_data=='C'){
flag=1;
}else if(Rx_data=='A'){
flag=2;
}else if(Rx_data=='B'){
flag=3;
}
HAL_UART_Receive_IT(&huart1,&Rx_data,1);
}
osDelay(1);
}
/* USER CODE END Application */
![](https://img-blog.csdnimg.cn/direct/faf970feff1c459296b5e3000580baf8.png)