完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#ifndef RS485_SAMPLE_SERIAL
#define RS485_SAMPLE_SERIAL "uart2" #endif #ifndef RS485_SAMPLE_BAUDRATE #define RS485_SAMPLE_BAUDRATE 9600 #endif #ifndef RS485_SAMPLE_PARITY #define RS485_SAMPLE_PARITY 0 #endif #ifndef RS485_SAMPLE_PIN #define RS485_SAMPLE_PIN GET_PIN(D,7) #endif #ifndef RS485_SAMPLE_LVL #define RS485_SAMPLE_LVL 1 #endif rt_thread_t tid; void rs_485() { const char send_cmd[] = "hello threadrn"; rs485_inst_t * hinst = rs485_create(RS485_SAMPLE_SERIAL, RS485_SAMPLE_BAUDRATE, RS485_SAMPLE_PARITY, RS485_SAMPLE_PIN, RS485_SAMPLE_LVL); if(hinst != RT_NULL) { rs485_set_recv_tmo(hinst, 1000); if (rs485_connect(hinst) != RT_EOK) { rs485_destory(hinst); LOG_E("rs485 connect fail."); return; } } while(1) { int len = strlen(send_cmd); len = rs485_send(hinst, &send_cmd,sizeof(send_cmd)); if(len<0) { LOG_E("rs485 send datas error."); break; } if(len == 0) { LOG_D("rs485 send timeout."); continue; } } rs485_destory(hinst); LOG_D("rs485 test end."); } int main() { tid = rt_thread_create ( "thread1",rs_485,RT_NULL,128,20,10); if(tid == RT_NULL) { return RT_ERROR; } else { rt_thread_startup(tid); LOG_I("rs485 sample master thread startup..."); return RT_EOK; } } INIT_APP_EXPORT(main); 这个代码是按照下载的软件包写的,目前程序是死在rs485_create函数里面的rt_device_find函数内,显示找不到串口2设备,但是串口有在board.h文件里面进行相应定义 之前有成功的时候,也是这个代码,成功获取到串口设备之后,485会一直向外发送数据,然后发送的数据有的时候是错乱的,希望有人可以帮忙解惑一下,谢谢。 |
|
相关推荐
2个回答
|
|
|
#ifndef RS485_SAMPLE_SERIAL
#define RS485_SAMPLE_SERIAL "uart2" #endif #ifndef RS485_SAMPLE_BAUDRATE #define RS485_SAMPLE_BAUDRATE 9600 #endif #ifndef RS485_SAMPLE_PARITY #define RS485_SAMPLE_PARITY 0 #endif #ifndef RS485_SAMPLE_PIN #define RS485_SAMPLE_PIN GET_PIN(D,7) #endif #ifndef RS485_SAMPLE_LVL #define RS485_SAMPLE_LVL 1 #endif rt_thread_t tid; void rs_485() { const char send_cmd[] = "hello thread "; rs485_inst_t * hinst = rs485_create(RS485_SAMPLE_SERIAL, RS485_SAMPLE_BAUDRATE, RS485_SAMPLE_PARITY, RS485_SAMPLE_PIN, RS485_SAMPLE_LVL); if(hinst != RT_NULL) { rs485_set_recv_tmo(hinst, 1000); if (rs485_connect(hinst) != RT_EOK) { rs485_destory(hinst); LOG_E("rs485 connect fail."); return; } } while(1) { int len = strlen(send_cmd); len = rs485_send(hinst, &send_cmd,sizeof(send_cmd)); if(len<0) { LOG_E("rs485 send datas error."); break; } if(len == 0) { LOG_D("rs485 send timeout."); continue; } } rs485_destory(hinst); LOG_D("rs485 test end."); } int main() { tid = rt_thread_create ( "thread1",rs_485,RT_NULL,128,20,10); if(tid == RT_NULL) { return RT_ERROR; } else { rt_thread_startup(tid); LOG_I("rs485 sample master thread startup..."); return RT_EOK; } } INIT_APP_EXPORT(main); 这个代码是按照下载的软件包写的,目前程序是死在rs485_create函数里面的rt_device_find函数内,显示找不到串口2设备,但是串口有在board.h文件里面进行相应定义[img]https://oss-club.rt-thread.org/uploads/20220412/3e6a0792a44263aaebbe5ba87b645fb6.png[/img] 之前有成功的时候,也是这个代码,成功获取到串口设备之后,485会一直向外发送数据,然后发送的数据有的时候是错乱的,希望有人可以帮忙解惑一下,谢谢。 |
|
|
|
|
|
先list_device 看看有没有uart2设备呢。如果设备不存在,那肯定是找不到的。
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:50 , Processed in 0.558396 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4487