mygr.net
当前位置:首页 >> stm8s003 串口死 >>

stm8s003 串口死

按照你的通讯参数,时间应该比较紧凑,特别是当数据接收和恢复都是18字节时,光通讯时间就大约消耗了38ms, 提供如下建议: 0. 如果条件允许,可把波特率提高一个档次; 1. 丢包,首先你要确认是数据没收到还是解析出错; 2. 使用中断接收,接收...

看下芯片使用说明书吧。 我估计问题是: 1、读写切换延迟时间太少。 2、不是自动流控制,需要编程控制读写方向。

不知道你的uart_SendByte(REV);函数实现是不是等待发送完成才返回的,还是立即返回 如果是立即返回,那么后面的清除完标志之后,发送标志会在发送完成之后置位,然后会再进入中断,至于REV仍然存在数据1,大概是因为没有其它的操作覆盖掉数据。

UART1_MODE_RX_ENABLE你设定的串口为智能读,不能写,应该选择UART1_MODE_TXRX_ENABLE 或 UART1_MODE_TX_ENABLE

需要帮你做吗

1楼的说法明显不对,串口接收时有标志位RI,当串口接收到一个字符(8位)时,RI会自动被置1,此时CPU会从主程序转去执行串行中断,普通单串口51单片机一般为 interrupt 4 子程序,当执行完时会自动回到主程序继续执行,因此自 interrupt 4子程序...

程序从Main进入 1、管脚初始化; 2、时钟初始化; 3、配置芯片的UART模块; 4、死循环一直等待; 5、若有串口数据进来,会触发中断函数,执行中断,把接收到的数据取出来,再通过发送函数发送出去;

UART1_Init((u32)19200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);//19200,8位,无校验 UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);//开启接收中断 UART1_ITConfig(UART...

_recv = FF;?? 应该是0xFF吧

void CLK_INIT(void) { CLK_CKDIVR = 0x19; /*HSI/8、CPU = 2/2,1M速度*/ CLK_PCKENR1 = 0x04; /*只开启uart1的时钟*/ CLK_PCKENR2 = 0x00; /*打开ADC的时钟*/ } void IO_INIT(void) { PA_CR1 = 0x00; /*推挽输出*/ PA_CR2 = 0x00; /*最大输出为...

网站首页 | 网站地图
All rights reserved Powered by www.mygr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com