感芯MC3172开发板入门(二)通信

        继续上一节的内容,学习串口通信。MC3172单片机,可以配置12个串口,四个IO一组,在组内串口的输入输出可以任意配置,非常灵活,和FPGA很相似。串口的基本知识不做介绍。

        本次串口选择第7组,选择线程组2,使用了内部的高速RC振荡器(192M),在上个试验的基础上,将采集的直流电压通过串口发送出去,串口波特率设置为921600.

void GPCOM_UART(u32 gpcom_sel)

{

    //时钟设置,

INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV4));

    //配置串口接收为P2,也可以配置为其他引脚

GPCOM_SET_IN_PORT(gpcom_sel,(GPCOM_RXD_IS_P2));

//配置串口发送为P0,也可以配置为其他引脚

    GPCOM_SET_OUT_PORT(gpcom_sel,( \

            GPCOM_P1_OUTPUT_DISABLE |GPCOM_P0_OUTPUT_ENABLE|GPCOM_P2_OUTPUT_DISABLE|GPCOM_P3_OUTPUT_DISABLE| \

            GPCOM_P1_IS_HIGH        |GPCOM_P0_IS_TXD       |GPCOM_P2_IS_HIGH       |GPCOM_P3_IS_HIGH \

                      ));

    GPCOM_SET_COM_MODE(gpcom_sel,GPCOM_UART_MODE);

    GPCOM_SET_COM_SPEED(gpcom_sel,48000000,921600);//192/4=48M

    //管角映射,要记得修改,与上面的设置相同。

    GPCOM_SET_OVERRIDE_GPIO(gpcom_sel, ( \

            GPCOM_P2_OVERRIDE_GPIO|GPCOM_P2_INPUT_ENABLE | \

            GPCOM_P0_OVERRIDE_GPIO \

                                              ));

}

void thread2_main(void)

{

    u8 send_data;

    GPCOM_UART(GPCOM7_BASE_ADDR);

    while(1){

        while(GPCOM_TX_FIFO_FULL(GPCOM7_BASE_ADDR));

        GPCOM_PUSH_TX_DATA(GPCOM7_BASE_ADDR,0xAA);

        GPCOM_PUSH_TX_DATA(GPCOM7_BASE_ADDR,0x66);

        send_data = delay>>8;

        GPCOM_PUSH_TX_DATA(GPCOM7_BASE_ADDR,send_data);

        send_data = delay &  0xff;

        GPCOM_PUSH_TX_DATA(GPCOM7_BASE_ADDR,send_data);

        GPCOM_PUSH_TX_DATA(GPCOM7_BASE_ADDR,0x55);

        delay_us(1000000);

    }

    thread_end();

}

        转动旋钮,电压从小到大,在从大到小。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值