完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
想请问一下有没有人遇到过这样的问题: 我用uart发出信号给下位机,中间经过一个RS485收发器,单片机上P2.12引脚控制RS485收发器的Enable,发送信号时,置P2.12高,发送完信号后,立刻变为低,因为还要从下位机接收信号。发送代码如下: void bat_sendSOCReq() { LPC_GPIO2->SET |= (1<<12); while(!((UART_SELECtiON_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0x01; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0x03; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0x00; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0x29; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0x00; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0x23; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0xD5; while(!((UART_SELECTION_Batt->LSR)>>0x05)&0x01); UART_SELECTION_Batt->THR = 0xDB; while(!((UART_SELECTION_PC->LSR)>>0x06)&0x01); LPC_GPIO2->CLR |= (1<<12); } 但是,每次8位信号还没有发送完,P2.12就提前变为低,导致最后两位信号发送不出去。即使添加了delay在LPC_GPIO2->CLR |= (1<<12)之前还是一样的结果。 |
|
相关推荐
1个回答
|
|
问题已经解决,自己结贴。
不知道问题到底是怎么解决的,但是我调整了uart的cclk。之前cclk是100MHz,改为了96MHz。这样通信的波特率更加准确。 此外,我还换了一个和下位机通信的线,问题就自己解决了。 所以我猜测,还是波特率的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36366 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4402 浏览 0 评论
6060 浏览 1 评论
6769 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4220 浏览 0 评论
624浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
620浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
614浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
697浏览 2评论
801浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 07:58 , Processed in 1.021867 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号