2411|3

1万

帖子

16

TA的资源

版主

楼主
 

【AT-START-F403A测评】二、对仿真虚拟串口的探索 [复制链接]

 

在上一个评测时我安装了虚拟串口,当然这是自动安装的,不是我一箱情愿安的,当时我心里就有个问号,我想ATLINK居然能虚拟串口出来,难道能用吗???

       我真是小看了ATLINK,经这次的评测,我发现这个串口居然能用唉!

我选的是FLASH读写的那个例程,有的坛友会问干么选FLASH例程?原因是这两天本个用别的32位FLASH想保存个数,娘地不好用。我明天再查查是怎么一回事。

由于心怀鬼胎。所以想试试雅特力的这款板子怎样。

       

       所以这次评测有两大任务,第一个串口好用不?究竟怎么PRINTF的?第二个跑FLASH例程。

     

       首先,FLASH例程:

       这个例程是把一些数从RAM中读到FLASH,然后,再读出,再查读的结果对不对,对就亮LED2.

       我看了例程居然不用使能FLASH的时钟,也许在初使化时有。但我搜了一下没看到。

       我只是在看时钟时吓了一跳。主频240MHz.如果我没有分析错,就是1/240US,也就是240份1US。

       我的天,240分之一微秒就一个机器周期了。

       例程好用,LED2亮了。

 

        其次,改造一下例程,加个printf函数看看好不好用。

        程序极其简单在原程点灯部分加上PASS和NO PASS,结果当然是PASS。

        

if(Buffercmp(BufferWrite,BufferRead,TEST_BUFEER_SIZE)==PASSED)        //Compare the buffer
  {
    AT32_LEDn_ON(LED2);
    AT32_LEDn_OFF(LED3);    
		printf("%s","PASS");
  }
  else
  {
    AT32_LEDn_OFF(LED2);
    AT32_LEDn_ON(LED3); 
    printf("%s","NO PASS");		
  }

   运行结果如下:

     

那么printf又是怎么好用的呢?

首先得编译器微库打条

其次得PUTCHAR重映射在at32_board.c中

ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
  
/*delay macros*/
#define STEP_DELAY_MS	500
  
/*AT-START LED resouce array*/
GPIO_Type *LED_GPIO_PORT[LED_NUM] = {LED1_GPIO, LED2_GPIO, LED3_GPIO, LED4_GPIO};
uint16_t LED_GPIO_PIN[LED_NUM]    = {LED1_PIN, LED2_PIN, LED3_PIN, LED4_PIN};
uint32_t LED_GPIO_RCC_CLK[LED_NUM] = {LED1_GPIO_RCC_CLK, LED2_GPIO_RCC_CLK, LED3_GPIO_RCC_CLK, LED4_GPIO_RCC_CLK};

/*AT-START Button resouce arry*/
GPIO_Type *BUTTON_GPIO_PORT[BUTTON_NUM] = {BUTTON_WAKEUP_GPIO, BUTTON_USER_KEY_GPIO};
uint16_t BUTTON_GPIO_PIN[BUTTON_NUM]    = {BUTTON_WAKEUP_PIN, BUTTON_USER_KEY_PIN};
uint32_t BUTTON_GPIO_RCC_CLK [BUTTON_NUM] = {BUTTON_WAKEUP_RCC_CLK, BUTTON_USER_KEY_RCC_CLK};

/*delay variable*/
static __IO float fac_us;
static __IO float fac_ms;
 
/**
  * [url=home.php?mod=space&uid=159083]@brief[/url] Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{  
  USART_SendData(AT32_PRINT_UART, ch);
  while ( USART_GetFlagStatus(AT32_PRINT_UART, USART_FLAG_TRAC) == RESET );    
  return ch;
}

第三步就是UART初始化

这里是初始化串口一。

 

 

好了,今天评测就到这儿了。让我感到意外的是这块板子,下载程序格外地快。不知是哪里优化了,还是F4就是这么快.

  

 

 

最新回复

为什么怀疑虚拟串口不能用呢?   详情 回复 发表于 2020-9-27 21:36
点赞 关注
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复
举报

1万

帖子

2853

TA的资源

管理员

沙发
 

雅特力AT-START-F403A测评汇总
https://bbs.eeworld.com.cn/thread-1143018-1-1.html
 

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

为什么怀疑虚拟串口不能用呢?

点评

从来就没用过,我都是用实际串口。从不玩虚地  详情 回复 发表于 2020-10-8 08:18
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1万

帖子

16

TA的资源

版主

4
 
freebsder 发表于 2020-9-27 21:36 为什么怀疑虚拟串口不能用呢?

从来就没用过,我都是用实际串口。从不玩虚地

个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表