本设计内容采用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(); 。。。。。
用串口助手连上,
按按钮
多按几次
总体步骤 点
1、需要初始化 SCIA GPIO35、36 用个 TTL转USB 连到电脑上
2、打开串口助手 连上 波特率对上,ASCII模式接收
3、初始化中断,按键,LED灯这些模块
4、设定共有变量 iCount 在EXTI1_IRQn函数里 iCount 自加1 ,由整型转换成 string型,再通过SCIA 发送给上位机解决 无用评论 打赏 举报
悬赏问题
- ¥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系统的硬盘