OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3283|回复: 5

用VisualStudio开发STM32遇到的问题(一)

[复制链接]

10

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2017-5-18
在线时间
56 小时
发表于 2018-2-16 20:58:16 | 显示全部楼层 |阅读模式
我现在已经用VS2017写STM32的程序有一段时间了,在这段时间里,遇到了不少问题,今天就和大家分享一下有关于printf的故事....
之前用MDK开发STM32的时候用正点原子教给大家的printf,很好用,但是在VS上,一直打印不出来东西,于是,我打算重新写printf
废话不多说,直接上代码
void myPrintf(char* fomat, ...)
{
char buf[1000] = "";
char* p;
u16 i = 0;
int num;
float fnum;
char* str;
char tem[100] = "";
va_list va;
va_start(va, fomat);
p = fomat;
while (*p)
{
  if (*p == '%')
  {
   switch (*(++p))
   {   
   case 'd':
    num = va_arg(va, int);
    itoa(num, tem, 10);
    strcpy(buf + i, tem);
    i += strlen(tem) - 1;
    break;
   case 's':
    str = va_arg(va, char*);
    strcpy(buf + i, str);
    i += strlen(str) - 1;
    break;   
   case 'f':
    fnum = va_arg(va, double);
    gcvt(fnum, 8, tem);
    strcpy(buf + i, tem);
    i += strlen(tem) - 1;
    break;
   }      
  }
  else
  {
   buf = *p;
  }
  i++;
  p++;
}
p = buf;
while (*p)
{
  while ((USART1->SR & 0X40) == 0)
   ;
  USART1->DR = (u8) *p;
  p++;
}
va_end(va);
}

其中,使用了string.h strlib.h strarg.h 这三个头文件
原理很简单,就是一个可变参函数.
建立一个1000字节的缓冲区,然后向缓冲区打印数据,最后就是通过串口发送到上位机啦.
测试代码:
4%8YHCH0_A$H23Q%TV0[P6L.png
测试结果
TMT2EEBCPI0A)W_IG7TV8R6.png


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

48

帖子

0

精华

高级会员

Rank: 4

积分
558
金钱
558
注册时间
2017-7-26
在线时间
50 小时
发表于 2018-2-16 21:14:35 | 显示全部楼层
老哥你是真的无聊。。。
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2018-2-14
在线时间
9 小时
发表于 2018-2-16 21:25:28 | 显示全部楼层
为什么用vs
回复 支持 反对

使用道具 举报

6

主题

315

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1669
金钱
1669
注册时间
2018-1-29
在线时间
160 小时
发表于 2018-2-16 22:01:57 | 显示全部楼层
我很感兴趣如何用VS2017写STM32的程序? 编译器如何配置? 如何用JTAG调试。楼主有相关资料共享一下呗!
回复 支持 反对

使用道具 举报

10

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2017-5-18
在线时间
56 小时
 楼主| 发表于 2018-2-17 09:25:09 | 显示全部楼层

因为VS的代码编写环境和调试能力都比MDK强了太多太多
回复 支持 反对

使用道具 举报

10

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2017-5-18
在线时间
56 小时
 楼主| 发表于 2018-2-17 09:26:03 | 显示全部楼层
backup2k 发表于 2018-2-16 22:01
我很感兴趣如何用VS2017写STM32的程序? 编译器如何配置? 如何用JTAG调试。楼主有相关资料共享一下呗!

用了Visual GDB插件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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