【英飞凌PSOC 4000T DIY】进入hellowold之旅
本帖最后由 lulugl 于 2025-4-13 09:15 编辑#申请原创# #有奖活动#@21小跑堂 【前言】
【英飞凌PSOC 4000T DIY】阅读入门指南有感https://bbs.21ic.com/icview-3445532-1-1.html
【英飞凌PSOC 4000T DIY】初读数据手册简介https://bbs.21ic.com/icview-3445780-1-1.html
【英飞凌PSOC 4000T DIY】时钟解读 https://bbs.21ic.com/icview-3445622-1-1.html
【英飞凌PSOC 4000T DIY】阅读数据手册之数字外设 https://bbs.21ic.com/icview-3445640-1-1.html
【英飞凌PSOC 4000T DIY】阅读数据手册之Pinouts https://bbs.21ic.com/icview-3445780-1-1.html
【英飞凌PSOC 4000T DIY】解读数据手册之电源部分 https://bbs.21ic.com/icview-3445786-1-1.html
在前几天我认真的阅读了CY8CPROTO-040T-MS的数据手册、快速开发指南。对开发板和芯片有了初步的了解,这次我将使用英飞凌的开发工具ModusToolbox进行实际的操作。
【开发板高清图】
开发板是板载了调试器的固件也升级到了最新的KitProg3,所以只需要插上USB数据线就是一套完整的评估套件。开发板非常的漂亮,做扎实,看起来象是一件完美的艺术品,这不得不佩服英飞凌的设计艺术。
【准备工作】
1、在创建工程时,确保已经安装好了ModusToolbox 3.4,如果没有创建,请按快速入门指南安装。
2、同时需要能够有非常好的网速访问github,否则会出现不能创建他的示例工程,或者不能完整下载工程而报错。
【创建helloworld工程】
1、首先在star菜单栏,执行New Application,在弹出的对话框中选择PSOC 4 BSPs,然后选择CY8CPROTO-040T-MS。然后点击next,如下图所示:
【注】如果没有出现Kit Name下面的列表,那么请检查是否能快速的访问github。
2、选择Getting Started下面的hello world工程模版,然后也可以指定自己要创建的工程路径,最后执行create,如下图所示:
【注】如果在点击create时报如下错误:
那是没有正确的连接到github库。
3、如果网速正常那么在工程中会创建好工程:
在readme文档中,详细的提示用户如何使用工程,以及注意事项等,如果是第一次使用,建议大家把他的文档阅读一遍。
【编译工程】
选中helloworld工程,就会在工具栏出现丰富的工具。我们可以点击工具栏中的build project ,也可以点击快捷键的小锤子,也可以执行Project->build project,或者在工程文件夹上右键弹出build project
执行build project后,如果没有错误,会显示编译结果如下:
【下载工程】
在Launches工具栏下面有三个选择,选择Helloworld Program,就会把工程下载到评估板,如果需要调试则选择 debug:
点击下载后,在Console会详细的显示下载进程,以及下载结果,日志打印非常详细,设计的UI也是非常优美的,可以是说这是我使用的IDE工具中最优秀的工具之一!
【效果】
ModusToolbox内置了串口终端,按下图所示,可以打开串口终端:
在终端中选择Serial Teminal,波特率选择115200,点击OK后可以连接评估板的虚拟TTL:
我在代码中添加测试代码:
<div style="background-color: rgb(255, 255, 255); padding-left: 2px;"><div style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 10pt; white-space: pre;"><p><span style="color:#7f0055;font-weight:bold;">int</span> <span style="font-weight: bold;">main</span>(<span style="color:#7f0055;font-weight:bold;">void</span>)</p><p>{</p><p> cy_rslt_t result;</p><p> <span style="color:#7f0055;font-weight:bold;">int</span> cnt = 0;</p><p> <span style="color:#7f0055;font-weight:bold;">char</span> buff;</p><p> cy_stc_scb_uart_context_t CYBSP_UART_context;</p><p>
</p><p> <span style="color:#3f7f5f;">/* Initialize the device and board peripherals */</span></p><p> result = cybsp_init();</p><p>
</p><p> <span style="color:#3f7f5f;">/* Board </span><span style="color: rgb(63, 127, 95); text-decoration-line: underline; text-decoration-color: rgb(255, 128, 64); text-decoration-style: wavy;">init</span><span style="color:#3f7f5f;"> failed. Stop program execution */</span></p><p> <span style="color:#7f0055;font-weight:bold;">if</span> (result != CY_RSLT_SUCCESS)</p><p> {</p><p> CY_ASSERT(CY_ASSERT_FAILED);</p><p> }</p><p>
</p><p> <span style="color:#3f7f5f;">/* Configure and enable the UART peripheral */</span></p><p> Cy_SCB_UART_Init(CYBSP_UART_HW, &CYBSP_UART_config, &CYBSP_UART_context);</p><p> Cy_SCB_UART_Enable(CYBSP_UART_HW);</p><p>
</p><p> <span style="color:#3f7f5f;">/* Enable global interrupts */</span></p><p> __enable_irq();</p><p>
</p><p> <span style="color:#3f7f5f;">/* Send a string over serial terminal */</span></p><p> Cy_SCB_UART_PutString(CYBSP_UART_HW, <span style="color:#2a00ff;">"Hello world\r\n"</span>);</p><p>
</p><p> <span style="color:#7f0055;font-weight:bold;">for</span>(;;)</p><p> {</p><p> <span style="color:#3f7f5f;">/* Toggle the user LED state */</span></p><p> Cy_GPIO_Inv(CYBSP_USER_LED1_PORT, CYBSP_USER_LED1_PIN);</p><p>
</p><p> <span style="color:#3f7f5f;">/* Wait for 0.5 seconds */</span></p><p> Cy_SysLib_Delay(LED_DELAY_MS);</p><p> cnt++;</p><p> <span style="text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;">sprintf(buff,(</span><span style="color: rgb(127, 0, 85); font-weight: bold; text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;">const</span><span style="text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;"> </span><span style="color: rgb(127, 0, 85); font-weight: bold; text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;">char</span><span style="text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;"> *)</span><span style="color: rgb(42, 0, 255); text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;">"Hello 21ic </span><span style="color: rgb(42, 0, 255); text-decoration-line: underline; text-decoration-color: rgb(255, 128, 64); text-decoration-style: wavy;">cnt</span><span style="color: rgb(42, 0, 255); text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;">: %d\r\n"</span><span style="text-decoration-line: underline; text-decoration-color: rgb(244, 200, 45); text-decoration-style: wavy;">, cnt);</span></p><p> Cy_SCB_UART_PutString(CYBSP_UART_HW, buff);</p><p> }</p><p>}</p></div></div>
这样就可以实现每500ms打印一行计数器。
如下图所示:
【总结】
这一篇我详细的分享了,如何使用ModusToolbox来实现创建一个基于CY8CPROTO-040T-MS评估板的基础工程,也初略的介绍如何编译、下载与串口终端的观察结果等。可以说英飞凌的开发板工具是非常优秀的。唯一有一点不方便,就是咱国内连接github的网速不给力,有时会带来一些不方便。
感谢分享, 这种效果怎么做出来的 南来之风 发表于 2025-4-21 16:17
感谢分享, 这种效果怎么做出来的
QQ截图,他这比微信的功能多一些。 学习一下
页:
[1]