m0_57531254 2021-10-14 22:18 采纳率: 18.8%
浏览 43
已结题

如何用串口通信SCI将外部中断的次数值发至上位机

本设计内容采用DSP28335开发环境,目的将外部中断的次数利用串口通信SCI传至上位机显示

  • 写回答

1条回答 默认 最新

  • 胸毛男 2021-10-15 23:58
    关注

    DSP28335 做的
    需要有个函数 是将整数转成字符串

    
    
    void itoa_mf(int num,char str[])
    {
        int sign = num;
        int i = 0;
        int j = 0;
        char temp[100];
        //如果是负数就去掉符号,将-1234转成1234
        if(sign < 0)
        {
            num = -num;
        }
        //转成字符串,1234转成"4321"
        do
        {
            temp[i] = num % 10 + '0';
            num /= 10;
            i++;
        }while(num > 0);
        //如果是负数的话,加个符号在末尾,如:"4321-"
        if(sign < 0)
        {
            temp[i++] = '-';
        }
        temp[i] = '\0';
        i--;
        //将temp数组中逆序输入到str数组中
        //将"4321-" ====> "-1234"
        while(i >= 0)
        {
            str[j] = temp[i];
            j++;
            i--;
        }
        //字符串结束标识
        str[j] = '\0';
    }
    

    这个函数写在了中断处理函数.c文件里 在 EXTI1_IRQn 上边
    EXTI1_IRQn 函数里这样写

    extern unsigned int iCount;
    interrupt void EXTI1_IRQn(void)
    {
        char sstring[16] = {0};
        itoa_mf(iCount,sstring);  // 整形转字符
        iCount++; //计数加1
        UARTa_SendString(sstring);  //从SCIA发送给上位机
        Uint32 i;
        for(i=0;i<10000;i++);    //键盘消抖动
        while(!KEY_H1);
        LED2_TOGGLE;
        PieCtrlRegs.PIEACK.bit.ACK1=1;
    }
    

    其他都是按部就班得引入,记得计数变量写在main.c里

    extern int iCount = 0;
    extern int iCount = 0;
    void main()
    {
        InitSysCtrl();
    
        DINT;
        InitPieCtrl();
        IER = 0x0000;
        IFR = 0x0000;
        InitPieVectTable();
    。。。。。
    

    用串口助手连上,

    img

    按按钮

    img

    img

    img


    多按几次

    img


    总体步骤 点
    1、需要初始化 SCIA GPIO35、36 用个 TTL转USB 连到电脑上
    2、打开串口助手 连上 波特率对上,ASCII模式接收
    3、初始化中断,按键,LED灯这些模块
    4、设定共有变量 iCount 在EXTI1_IRQn函数里 iCount 自加1 ,由整型转换成 string型,再通过SCIA 发送给上位机

    评论

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘