iar,使用2.0版本库文件
应用在485的收发控制,stm8s105c4的pd7管脚总莫名其妙被置高,造成485总线无法通讯。仔细检查程序其他地方根本没有对其操作的语句,而且采用计数的方式检查pd7操作流程(置高、置底),发现出错时操作也完全正常,程序如下
#define CS_RX GPIO_WriteLow (GPIOD, GPIO_PIN_7) //485接收
#define CS_TX GPIO_WriteHigh(GPIOD, GPIO_PIN_7) //485发送
GPIO_Init(GPIOD, GPIO_PIN_7, GPIO_MODE_OUT_PP_LOW_SLOW);
INTERRUPT_HANDLER(UART2_TX_IRQHandler, 20)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
static u8 rr;
if(UART2_GetFlagStatus(UART2_FLAG_TXE) != RESET)
{
UART2_SendData9(Usart_TX_Buf[rr]);
rr ++;
if(rr == Usart_TX_Count)
{
while (UART2_GetFlagStatus(UART2_FLAG_TC) == RESET);//等待发送完毕
rr=0;
CS_RX;//485接收状态
UART2_ITConfig(UART2_IT_TXE, DISABLE);
}
}
}
我还怀疑是tli的问题,但选项字设置为tim1-ch4后问题依旧,实在是感觉莫名其妙,请哪位大侠给点思路 |