STM32
直播中

王彬

7年用户 1004经验值
私信 关注
[问答]

怎么实现STM32F0 HAL库软件模拟串口发送数据?

怎么实现STM32F0 HAL库软件模拟串口发送数据?

回帖(1)

钱敏

2021-12-6 14:28:11
试验STM32F0官方提供的例程的时候,希望看到程序中某些变量的值,但是程序中往往没有串口发送部分,自己加又非常麻烦。
而点亮LED的程序基本上每个例程都有。所以用点亮LED引脚模拟串口发送数据就很方便,不用再去初始化串口IO,初始化串口等等。

/**
  * @brief  软件模拟串口发送数据
  * @param  48MHz时钟,9600波特率,8数据位,无校验
  * @retval None
  */
void SimUartSend(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin,uint8_t value)
{
        uint32_t i;
        uint8_t k;

        //发送起始位
        HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_RESET);
        for(i = 0;i<930;i++)
        {
                 ;
        }
        //发送数据位
        for(k = 0;k<8;k++)
        {
                if((value&(1< 0)
                {
                        HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_SET);
                        for(i = 0;i<960;i++)
                        {
                                 ;
                        }
                }
                else
                {
                        HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_RESET);
                        for(i = 0;i<950;i++)
                        {
                                 ;
                        }
                }
        }
        //发送停止位
        {
                HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_SET);
                for(i = 0;i<970;i++)
                {
                         ;
                }
        }
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分