玩stc15的4串口通信,down了个单串口通信的案例,改成4串口。里面有个串口发送处理的回调函数,参数是字符串指针和字符串长度。
typedef uchar(*MB_SendDatas)(uchar *,uchar) ;
现在4串口需增加个串口号参数:
typedef uchar(*MB_SendDatas)(uchar *,uchar,uchar) ;
编译报错:error C212: indirect call: parameters do not fit within registers
定义增加了重入 reentrant 编译能通过,运行发送完正常数据后总会跟一串的0x00,调试发现字符串长度在调用 MB_SendDatas 之前是正常的,但调用之后就改变了。
不得已改回原本的两个参数,把串口号改成全局变量测试正常。
|