查看: 1367|回复: 2

[原创] 【FRDM-K32L2B3 开发板试用】+串行通讯功能及应用

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7092
    最后登录
    2023-4-20
    发表于 2020-9-26 00:28:56 | 显示全部楼层 |阅读模式
    K32L2B3 开发板具备串行通讯的功能,在使用的例程的情况下,需按图1所示进行连接:
    USBCOM模块的 RX PTD3J1_6
    USBCOM模块的 TX PTD2J2-4
    USBCOM模块的 GND GNDJ2-14
    1.jpg
    1 引脚连接
    在将执行代码文件uart_polling.HEX文件拖入虚拟盘后,即可进行测试。
    在使用串口调试器的情况下,可按图2所示进行设置,其中波特率为115200 bps,数据格式8/N/1
    2.jpg
    2 参数设置及执行效果

    程序的源代码如下:
    1. #define DEMO_UART UART2
    2. uint8_t txbuff[]   = "Uart polling example\r\nBoard will send back received characters\r\n";
    3. uint8_t rxbuff[20] = {0};
    4. int main(void)
    5. {
    6.     uint8_t ch;
    7.     uart_config_t config;
    8.     BOARD_InitPins();
    9.     BOARD_BootClockRUN();
    10.     /*
    11.      * config.baudRate_Bps = 115200U;
    12.      * config.parityMode = kUART_ParityDisabled;
    13.      * config.stopBitCount = kUART_OneStopBit;
    14.      * config.txFifoWatermark = 0;
    15.      * config.rxFifoWatermark = 1;
    16.      * config.enableTx = false;
    17.      * config.enableRx = false;
    18.      */
    19.     UART_GetDefaultConfig(&config);
    20.     config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
    21.     config.enableTx     = true;
    22.     config.enableRx     = true;
    23.     UART_Init(DEMO_UART, &config, DEMO_UART_CLK_FREQ);
    24.     UART_WriteBlocking(DEMO_UART, txbuff, sizeof(txbuff) - 1);
    25.     while (1)
    26.     {
    27.         UART_ReadBlocking(DEMO_UART, &ch, 1);
    28.         UART_WriteBlocking(DEMO_UART, &ch, 1);
    29.     }
    30. }
    复制代码

    在该程序的基础上,稍加修改即可构成一个对于工作在串行通讯模式下超声波测距模块的读写控制,该测距模块的外观如图3所示。
    3.jpg
    3 超声波测距模块
    该模块的工作原理为:
    1)该模块工作在9600 bps 的波特率下;
    2)在测距时,向模块发送指令“55”;
    3)模块回返回4字节的信息,其中第1字节FF为引导码,第4字节则为校验码,第2字节和第3字节为十六进制的测距值,单位为毫米。
    其测试效果如图4所示。
    为信息“FF00 E6 E5 为例,其校验码E5=FF+00+E6,而“00 E6”则为 230 mm
    在使用过程中,该测距模块与开发板的连接关系为:
    测距模块的 RX PTD3J1_6
    测距模块的 TX PTD2J2-4
    测距模块的 VCC 3.3VJ3-4
    测距模块的 GND GNDJ2-14
    4.jpg
    4 测试效果
    由于串行通讯口已被占用,故在使用时需由SLCD液晶屏来显示测距值,相应的主程序框架为:
    1. uint8_t txbuff[]   = "\0x55";
    2. uint8_t rxbuff[4]  = {0};
    3. uint16_t s;

    4. int main(void)
    5. {
    6.     ...
    7.     UART_WriteBlocking(DEMO_UART, txbuff, sizeof(txbuff) - 1);
    8.     //  config.baudRate_Bps = 9600U;
    9.     while (1)
    10.     {
    11.         UART_ReadBlocking(DEMO_UART, &ch,4);
    12.         s= rxbuff[1]*256+ rxbuff[1];
    13.         // 调用液晶屏显示结果
    14.         SysTick_DelayTicks(500U);    /* Delay 500 ms */
    15.         UART_WriteBlocking(DEMO_UART, &ch, 1);
    16.     }
    17.     ...
    18. }
    复制代码


    回复

    使用道具 举报

  • TA的每日心情
    难过
    2023-9-6 15:15
  • 签到天数: 211 天

    [LV.7]常住居民III

    34

    主题

    805

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2038
    最后登录
    2024-3-21
    发表于 2020-9-27 09:00:33 | 显示全部楼层
    学习下!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7092
    最后登录
    2023-4-20
     楼主| 发表于 2020-9-27 19:59:41 | 显示全部楼层

    多谢支持!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 06:44 , Processed in 0.115933 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表