×¢²á µÇ¼
µç×Ó¹¤³ÌÊÀ½ç-ÂÛ̳ ·µ»ØÊ×Ò³ EEWORLDÊ×Ò³ ƵµÀ EE´óѧÌà ÏÂÔØÖÐÐÄ Datasheet רÌâ
oxlm_1µÄ¸öÈË¿Õ¼ä https://home.eeworld.com.cn/space-uid-1076641.html [ÊÕ²Ø] [¸´ÖÆ] [·ÖÏí] [RSS]
ÈÕÖ¾

¡¾RainbowLink USB ЭÒéת»»Æ÷¡¿485½Ó¿Ú²âÊÔ

ÒÑÓÐ 124 ´ÎÔĶÁ2025-1-6 00:24 |¸öÈË·ÖÀà:²âÆÀ¼Ç¼

1ºÅ±¾À´ÏëÑéÖ¤485ͨÐÅÄÜÁ¦µÄ£¬µ«ÊÇÓÉÓÚµ÷ÊÔÎÊÌ⣬һֱûµ÷ͨ485½Ó¿Ú£¬¸ÕºÃÖÜÄ©ÓÐʱ¼ä£¬¾ÍÔÙÒ»´ÎÑéÖ¤485½Ó¿ÚµÄ¹¦ÄÜ¡£
¾­¹ýµ÷ÊÔ£¬·¢ÏÖÎÒËùʹÓõÄÆôÃ÷6m5µÄ2ºÅ485½Ó¿Ú´æÔÚ¹¦Äܲ»Á¼µÄÇé¿ö£¬¸ÕºÃ°å¿¨µÄ1ºÅ485½Ó¿Ú¹¦ÄÜÍêºÃ£¬±ãÇл»µ½1ºÅ485½Ó¿Ú×ö485ͨÐŹ¦ÄÜÑéÖ¤¡£
Ê×ÏÈ£¬»¹ÊÇÀÏ·½·¨£¬ÏÈÉϽÓÏßͼ
ÎÒʹÓõÄRS232½Ó¿Ú×öRTTµÄmsh½Ó¿Ú£¬1ºÅ485½Ó¿Ú×ö²âÊÔ½Ó¿Ú£¬Ê¹ÓÃ5V¹©µçΪÆôÃ÷6M5Ìṩ¹©µç¡£
´úÂë±àд
#include <rtthread.h>
#include "hal_data.h"
#include <rtdevice.h>
#define CTS_PIN    BSP_IO_PORT_05_PIN_03 /* 485 Follow control pins */
#define SAMPLE_UART_NAME       "uart5"
static rt_device_t serial;
struct rx_msg
{
    rt_device_t dev;
    rt_size_t size;
};
struct rt_ringbuffer rb;
rt_uint8_t pool[1024];
static rt_uint8_t buffer[BSP_UART4_RX_BUFSIZE + 1];
static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
{
    rt_uint32_t rx_length;
    rx_length = rt_device_read(dev, 0, buffer, size);
    if(rx_length)
    {
        rt_ringbuffer_put(&rb, buffer, rx_length);
    }
    return RT_EOK;
}
static void serial_thread_entry(void *parameter)
{
    rt_uint32_t rx_length;
    static rt_uint8_t rx_buffer[1024];
    while (1)
    {
        rx_length = rt_ringbuffer_data_len(&rb);
        if(rx_length)
        {
            rx_length = rt_ringbuffer_get(&rb, rx_buffer, rx_length);
            rt_kprintf("%s\n",rx_buffer);
            rt_memset(rx_buffer, 0x00, rx_length);
        }
        rt_thread_mdelay(1);
    }
}
static int uart_loop_sample(int argc, char *argv[])
{
    rt_err_t ret = RT_EOK;
    char uart_name[RT_NAME_MAX];
    char str[] = "hello RT-Thread!\r\n";
    if (argc == 2)
    {
        rt_strncpy(uart_name, argv[1], RT_NAME_MAX);
    }
    else
    {
        rt_strncpy(uart_name, SAMPLE_UART_NAME, RT_NAME_MAX);
    }
    serial = rt_device_find(uart_name);
    if (!serial)
    {
        rt_kprintf("find %s failed!\n", uart_name);
        return RT_ERROR;
    }
    rt_ringbuffer_init(&rb, pool, 1024);
    rt_device_set_rx_indicate(serial, uart_input);
    rt_device_open(serial, RT_DEVICE_FLAG_RX_NON_BLOCKING | RT_DEVICE_FLAG_TX_BLOCKING);
    rt_pin_write(CTS_PIN, PIN_HIGH);
    rt_device_write(serial, 0, str, (sizeof(str) - 1));
    rt_pin_write(CTS_PIN, PIN_LOW);
    rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 2048, 25, 10);
    if (thread != RT_NULL)
    {
        rt_thread_startup(thread);
    }
    else
    {
        ret = RT_ERROR;
    }
    return ret;
}
MSH_CMD_EXPORT(uart_loop_sample, uart device loop sample);

 

»ù´¡ÊÕ·¢²âÊÔ
ʹÓó£Óò¨ÌØÂÊ115200×öͨÐÅ£¬²é¿´Í¨ÐŵÄÎȶ¨ÐÔ£¬´ÓÊÕ·¢ÉÏ¿´£¬115200ÊÕ·¢ºÜÎȶ¨¡£
½øÒ»²½µÄÊÕ·¢²âÊÔ
ͻȻ·¢ÏÖÎÒÁíһ̨µçÄÔÉϵÄsscom¿ÉÒÔÅܵ½2MµÄËÙÂÊ£¬Òò´Ë°Ñ´úÂëÅäÖóÉ2MÔÙÒ»´Î²âÊÔ£¨´Ó´òÓ¡ÉÏ¿´£¬Ò»Èç¼ÈÍùµØÎȶ¨£©¡£
ÖÕ¼«²âÊÔ
Òź¶µÄÊÇ£¬RA6M5µÄ485Ö§³ÖµÄËÙÂÊòËƵ½²»ÁË6M£¬ÉõÖÁ4M¶¼µ½²»ÁË£¨²é¹æ¸ñÊé·¢ÏÖ£¬°å×ÓÉÏËùʹÓõĴ®¿Úת485оƬMAX3485¿ÉÒÔµ½10Mbps£¬Èç¹û²»ÊÇÕâоƬµÄÎÊÌâµÄ»°£¬ÄǾʹó¸ÅÂÊÊÇ×ßÏß»òÕßRA6M5±¾ÉíµÄÄÜÁ¦ÎÊÌâÁË£¬ÒòΪRA6M5¹æ¸ñÊéҲûÌá¼°´®¿ÚÖ§³ÖµÄËÙÂÊÉÏÏÞ£©£¬Òò´ËÕⲿ·ÖµÄ²âÊÔ²¢Ã»Óвâ³öRainbowLinkµÄÄÜÁ¦ÉÏÏÞ£¬±Ï¾¹Ì³×ÓÀïÒѾ­Óвâ³öRainbowlink 6MËÙÂÊÏ£¬485»¹ÄÜÎȶ¨ÊÕ·¢ÁË¡£
±¾À´ÏëʹÓÃ6MÒÔÉϵÄËÙÂÊÈ¥²âÊÔ£¬µ«ÊÇÏëÏ뻹ÊDZ£ÏÕÆð¼û£¬ÏÈʹÓÃCH344QÉÏÏÞµÄ6MÈ¥²âÊÔ¡£½á¹ûÓÐЩ²Ò²»È̶㬿ÉÒÔºÜÃ÷ÏԵĿ´µ½£¬ÆôÃ÷6M5·¢³öµÄÊý¾Ý£¬RainbowLinkÒѾ­ÎÞ·¨Õýȷʶ±ðÁË¡£¶øRainbowLink·¢³öµÄÐźţ¬ÆôÃ÷6M5Ò²³öÏÖÁËÃ÷ÏÔµÄÎóÂëÁË
Í˶øÇóÆä´Î£¬Ê¹ÓÃ4M²âÊÔ£¬»¹ÊDzҲ»È̶á£
×ܽá
¾­¹ýÕâô²âÊÔ£¬ÎÒ·¢ÏÖÎÒ²¢Ã»Óвâ³öRainbowlinkµÄÄÜÁ¦ÉÏÏÞ£¬µ«2MµÄËÙÂÊ£¬ÆäʵÒѾ­Âú×ãÎÒµÄÈÕ³£µ÷ÊÔʹÓÃÁË£¬Î¨Ò»µÄÒź¶Êǹ©µç²»´ø¿ª¹Ø£¬ÔÚµ÷ÊÔʱÉÔÓв»±ã¡£

±¾ÎÄÀ´×ÔÂÛ̳£¬µã»÷²é¿´ÍêÕûÌû×ÓÄÚÈÝ¡£

ÆÀÂÛ (0 ¸öÆÀÂÛ)

facelist doodle Í¿Ñ»°å

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔÆÀÂÛ µÇ¼ | ×¢²á

ÈÈÃÅÎÄÕÂ