stm32代码后面为什么会有PUTCHAR_PROTOTYPE,是什么意思

PUTCHAR_PROTOTYPE
{
USART_SendData(USART1, (uint8_t) ch);
/* Loop until the end of transmission */
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{}

return ch;
}

这是一个串口发送字符数据的程序
我给你做了注释,如下:

PUTCHAR_PROTOTYPE//发送一个字符协议
{
USART_SendData(USART1, (uint8_t) ch);//发送函数,这是stm32库函数
/* Loop until the end of transmission *///循环直到发送完成
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)//如果发送未完成,
//标志位未置位,则循环等待
{}
return ch;//返回发送的字符数据
}

应该能够看懂了吧?追问

为什么在点灯的程序中会出现发送字符数据的代码

追答

这要看你的设计了,点灯程序中,灯是由主控直接控制的吗?如果用到了串口通信就有发送字符数据的代码了

追问

直接通过库函数电灯

追答

那你的硬件电路呢,灯是怎么接的?

追问

追答

哦,看你这个硬件灯是共阳极,通过io口直接控制的
灯DS2是3.3V电源指示
灯DS3接在PB2
灯DS4接在PA3
灯DS5接在PA2
所以控制灯的亮灭,肯定不需要通信程序的!
但是如果等的亮灭有外界通信条件,也不排除要用到通信程序!

如果是你自己写代码控制灯的亮灭的话,肯定不要通信的!
如果要控制DS2亮灭,语句如下
亮:GPIO_ResetBits(GPIOB, GPIO_Pin_2)//PB2=0,灯亮
灭:GPIO_SetBits(GPIOB, GPIO_Pin_2)//PB2=1,灯灭
其他同理,你试试?

温馨提示:答案为网友推荐,仅供参考