完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
LIN 通信时 同步段的 数据 0X55 怎么都收不到数据?怎么解决?
这是初始化程序: void LIN_Init(US usBaud) { SCISR2 &= 0x7f ; // 设置AMAP SCIBD = (US)( (SystemBusClock/16)/usBaud ); //设置SCI波特率 SCICR1 = 0x00; //设置SCI0为正常模式,八位数据位,无奇偶校验 SCICR1 = 0x04; SCICR2 = 0x2c; //允许接收和发送数据,允许接收中断功能 SCICR1|=(1<<2); SCISR2 |=(1<<2); //设置BRK13 13位间隔符 } 这是接收函数: UC LIN_GetChar(LIN_Frame *Frame_Receive) { static UC ch; // LIN接收通道状态 switch(Frame_Receive->State) { case IDLE: if(!( SCISR1&0x22) ) return(FALSE); if(SCIDRL) return(FALSE); break; case _BREAK: if(!(SCISR1_RDRF)) return(FALSE); if(SCIDRL!=0x55); return(FALSE); /* 程序 一直 死在这里 , 一直收不到 0X55 的数据 */ break; case SYNCH: /* 获取 ID */ if(!(SCISR1_RDRF)) return(FALSE); ch = SCIDRL; Frame_Receive->PID = ch; break; case PROTECTED_IDENTIFIER: case DATA0: case DATA1: case DATA2: case DATA3: case DATA4: case DATA5: case DATA6: if(!(SCISR1_RDRF)) return(FALSE); ch = SCIDRL; Frame_Receive->Data[Frame_Receive->State-PROTECTED_IDENTIFIER] = ch; break; case DATA7: if(!(SCISR1_RDRF)) return(FALSE); ch = SCIDRL; Frame_Receive->Check = ch; break; case CHECKSUM: return(FALSE); } Frame_Receive->State+=1; return(TRUE); } |
|
相关推荐
4个回答
|
|
|
已经解决
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2138个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37402 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6797 浏览 1 评论
7820 浏览 1 评论
7665 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5089 浏览 0 评论
1579浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1222浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
765浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
756浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
697浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 19:07 , Processed in 0.707677 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3559