完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教大伙一个问题,困扰我两天了,总感觉自己设置的没错可就是没有出现自己要的现象
是关于M0516的uart串口的RS485普通模式操作问题,这里我是想把M0516做成从机,接受上位机传来的地址和数据,我对uart1的设置如下: UART1->FUN_SEL = UART_FUNC_SEL_RS485;//设置uart1为RS485模式 UART1->BAUD = UART_BAUD_MODE2 | UART_BAUD_DIV_MODE2(4, 1200);//4M的晶振设置波特率为1200 _UART_SET_DATA_FORMAT(UART1, UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1)//8位字符长度,无校验,一位停止位 UART1->FCR = UART_FCR_RTS_TRI_LEV_1BYTE | UART_FCR_RFITL_1BYTE | UART_FCR_RX_DIS_Msk;/// UART1->ALT_CSR = UART_ALT_CSR_RS485_ADD_EN_Msk | UART_ALT_CSR_RS485_NMM_Msk ;///使能uart1为RS485普通模式,使能地址识别 我设置的目的是开始只让uart1只接受上位机传来的地址,然后我在逻辑程序中判断地址是否正确 所以在上位机传入地址时我用查询的方式判断是否接收到地址字节 while(!((UART1->ISR UART_ISR_RLS_INT_Msk) (UART1->ISR UART_ISR_RDA_If)))//如果收到有效地址UART1->ISR 的RLS位和RDA位会置1 这样就相当于我一直等待上位机的地址过来,可是问题是:无论我的上位机怎么发地址,这边都没反应啊,查询中断状态 RLS位始终不置1 啊 我用示波器看上位机发过来的地址,没有错,第九位地址为确实是为1的 比如我发地址85 发过来的就是 0101 0101 1 为什么么uart1会对发过来的地址无动于衷呢? 求指教 啊 愁死我了 |
|
相关推荐
1个回答
|
|
bsp中有例子,void RS485_9bitModeSlave()
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 07:27 , Processed in 0.432139 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号