调试的时候,Res初始为0x00,用串口调试工具发送一个‘A’后,值变为0X0A,并且不论发送什么,Res都为0X0A.使用RS485_byte()函数可以正常发送
硬件上连接:485_Rx 和串口2和CH340连接
软件:
main.c
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //延时初始化
RS485_init(9600);
while(1)
{
}
}
RS485.C
void RS485_byte(u8 d) //485发送一个字节
{
RS485_RE_1;
USART_SendData(USART2, d);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
USART_ClearFlag(USART2,USART_FLAG_TC );
RS485_RE_0;
}
void USART2_IRQHandler(void) //串口2中断服务程序
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
{
Res =USART_ReceiveData(USART2); //(USART2->DR); //读取接收到的数据
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>