本帖最后由 chuandaoxy 于 2021-2-17 14:34 编辑
最近从网上移植一段代码,串口中断很正常,可就是每次只能收到一个字符,代码如下
push_ringbuffer就是把一个字符串放进buffer,可是debug感觉就接收了一个字符
if(__save_pointer != __action_pointer) {
__ring_buffer[__save_pointer]=comdt;
__save_pointer++;
感觉上面这段没起作用,没有递增接收数据
S0_ISR()interrupt INTERRUPT_UART0
{
if (RI0)
{RI0=0;
push_ringbuffer(SBUF0); }
}
void push_ringbuffer(uchar comdt)
{
if (__modbusSwitch) {
if (__modbusBlankCheck > 10) { //<-- 捞 箭磊甫 炼沥窍搁 埃拜炼沥 啊瓷 (5mS 付促 1究 刘啊窍绰 墨款磐)
comFlush(); // 50mS 浆菌促 甸绢柯 版快, 扁粮滚欺俊 乐带芭绰 葛滴 瘤款促. (畴捞令 单捞磐老 啊瓷己 乐澜)
}
__modbusBlankCheck = 0;
}
if(__save_pointer != __action_pointer) {
__ring_buffer[__save_pointer]=comdt;
__save_pointer++;
if(__save_pointer>__ring_buffer_max)
{ __save_pointer=0; }
}
if (__modbusSwitch) modbusFrameSearch(); //荐脚流饶 秦寸 盲澄捞 葛靛滚胶 劝己拳 登绢乐栏搁 贸府秦霖促.
}
大家看看哪里的问题,
|