本帖最后由 guojunhope 于 2020-7-1 09:56 编辑
首先来说一下对开发板的总体印象。作为对学习核心芯片功能的开发板,一定要有丰富的外设资源,这样才能方便客户进行测试,在这一点上,杰发科技做的不错,开发板上SPI,USART,I2C,CAN,LIN等都单独引出了接口,方便用户直接通过插头连接。板上还配了3个按钮,3个LED,方便用户进行一些简单的实验。板子布局很大气,丝印标识也很清晰,各种测试点也很规范,有大厂的风范,国产厂家都能保持这种劲头,中国制造就会越来越好!为你们点赞! 再来说说AutoGen Studio,这款基本上是仿照STM32 CUBE的,功能也是一样的,用来生成总体的框架代码。目前采用图形化工具进行单片机设计已经是公认的发展趋势,对提高开发效率有着非常重要的意义。应该说,AutoGen Studio是我目前见到的国内在这个领域做得最好的。 但还有很多地方需要改进。这里举几个我遇到的问题,希望厂家能注意到,及时改进,把产品越做越好。 首先是对于GPIO引脚重命名,比如说我们选定PC9作为输出, 在GPIO设置面板中,能够更改用户标签,在芯片图上也能正常显示,可生成的代码里,完全找不到”LED”的身影。
这方面,请参考Microchip的MCC,它能根据用户对引脚起的别名,对生成的框架函数进行统一的修改,这样会大大方便用户的使用。
再有就是UART2的问题,这块开发板能通过USB口供电,同时,这个USB口实际上连通了78013的USART2,这样就能将信息通过这个串口“打印”出来,调试会非常方便。 但我尝试通过AutoGen生成的USART2代码进行串口通讯,却始终是乱码。下面展示一下总体的过程。首先,勾选UART2下面的异步使能按钮 进入参数配置界面,保持缺省选项,波特率115200,8位,无校验,1位停止位。
之后单击生成代码按钮,在适当的位置,生成“UART2_Test”项目。 之后在main.c中,添加如下代码,将printf函数的输出定向到UART2。
/* USER CODE BEGIN0 */ int fputc(int ch,FILE *f) { UART_SendData(UART2, ch); return ch; } /* USER CODE END 0*/
然后在主循环里,添加如下代码:
/* USER CODE BEGINWHILE */ GPIO_SetPinLevel(GPIOC, GPIO_PIN9,GPIO_LEVEL_LOW); mdelay(500); GPIO_SetPinLevel(GPIOC, GPIO_PIN9,GPIO_LEVEL_HIGH); mdelay(500); printf("Hi there!/n"); /* USER CODE ENDWHILE */
查阅开发板原理图可知,PC9与LED1连接,这里让PC9引脚定时输出高低电平,就有了一个闪烁的标志,能让我们知道程序在正常运行。为了正常下载程序,必须正确配置,右键单击UART2_Test,选择” Options…”
在Target标签页,将外部晶振设为12MHz,一定要勾选”UseMicroLIB”,否则生成的代码不能正常运行。
之后在Debug标签页,根据自己的下载器(我用的是J-LINK),选择正确的设备, 单击“Settings”
如果版本比较老,则会弹出如下对话框,显示AC78013FDLA是未知器件,这时候一定要单击Yes,手动设置:
选择如下图所示的“Cortex-M0+”,然后单击“OK”确定。
这时在”SW Device”中就能看到设备正常显示了,将Port改为SW, 速度选2MHz。
之后将程序编译后下载。
下载完毕后,LED1正常闪烁,代表程序正常执行。我们打开串口调试助手,选择正确的串口,设置相应的波特率,结果能收到数据,但全是乱码。
经过波特率调整,只发送单个字符等测试,故障依旧。
后来从论坛的其他帖子受到启发,下载了厂家的示例代码,这里选择了ADC模块例程,
编译下载后,用串口助手收到了正确的数据:
|