【雅特力AT-START-F437评测】1.开箱+RTthread验证
[复制链接]
收到板子有一段时间了,计划使用F437完成一个小型的物联网网关。
因此文章计划如下:
- 1.开箱 +Rtthread验证
- 2.串口验证,完成和wifi模块的通信
- 3.I2C功能验证,读取温湿度传感器信息
- 4.ADC功能验证,完成采集声音数据
- 5.WIFI功能验证,通过串口将数据发到wifi模块,WiFi模块再通过mqtt协议发布数据到mqtt服务器
- 6.项目汇总
一,开箱
收到板子,板子如下所示:
板子的资源很丰富,本身自带了一个ATlink,且此ATlink可以拆下来单独做一个daplink使用。除此之外,板子还将所有的引脚引出,自带了一个网口,可玩性超级高。
具体资源如下所示:
二、资料下载
雅特力的资料下载,可以在https://www.arterytek.com/cn/index.jsp
一般我们开发雅特力的MCU,需要下载以下几个文件:
1.PACK包,用来在keil中使用雅特力的库
2.数据手册,原理图,技术手册
3.BSP 也就是软件包,BSP中包括了雅特力很多例程,雅特力的\BSP\project中,还包含了各个例程的介绍文件,名称为:at_start_f437_Example_list.htm,打开后如下所示:
看到出来,雅特力在文档上真是十分用心了。
更用心的还在后面,假如说我打开了一个F437的spi 例程:BSP\project\at_start_f437\examples\spi\crc_transfer_polling,在例程中,readme部分写着:
this demo is based on the at-start board, in this demo, shows how to transfer
crc value by polling mode.
the pins connection as follow:
- spi2 slaver spi3 master
pd1(sck) <---> pc10(sck)
pc2(miso) <---> pc11 (miso)
pd4(mosi) <---> pc12(mosi)
for more detailed information. please refer to the application note document AN0102.
不仅介绍了此例程的作用,怎么接线,而且重点在于最后的AN0102。我们可以去官网https://www.arterytek.com/cn/support/index.jsp?index=1support---APNOTE直接搜索下这个编号,如下所示:
此时,我们将这个文档下载下来,打开,可以看到此文件是介绍SPI和I2S用法的,而且对每个实验都做了详细的介绍,如下所示:
而且文档全是中文写的,足以看出雅特力工程师的认真严谨。我相信,就算一个完全没接触过雅特力的人,有这么丰富,这么详实的文档,也绝对可以很快熟悉雅特力的。雅特力的文档是我用过的所有单片机中最丰富,最详细,最用心的。
4.AT32F435_437固件库BSP&Pack应用指南,这个手册实在BSP目录的document目录下的,在开发的时候常用来做字典。碰到例程中的函数,不知道输入输出的含义,都可以在这个手册中查到,例如,BSP\project\at_start_f437\examples\spi\crc_transfer_polling有如下代码:
static void spi_config(void)
{
spi_init_type spi_init_struct;
crm_periph_clock_enable(CRM_SPI3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_SPI2_PERIPH_CLOCK, TRUE);
spi_default_para_init(&spi_init_struct);
spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_8;
spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
spi_init_struct.frame_bit_num = SPI_FRAME_16BIT;
spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_LOW;
spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
spi_init(SPI3, &spi_init_struct);
spi_init_struct.master_slave_mode = SPI_MODE_SLAVE;
spi_init(SPI2, &spi_init_struct);
spi_crc_polynomial_set(SPI3, 7);
spi_crc_polynomial_set(SPI2, 7);
spi_crc_enable(SPI3, TRUE);
spi_crc_enable(SPI2, TRUE);
spi_enable(SPI3, TRUE);
spi_enable(SPI2, TRUE);
}
这是spi配置的代码,假如我想查spi_crc_polynomial_set的含义,即可在固件库应用指南中,搜索这个函数,搜索结果如下:
因此,在雅特力这么给力的文档基础下,开发绝对可以事半功倍。
三、RT-thread 在F437上运行
1.首先在 下载rtthread源码包,这个比github更稳定些
2.下载后打开目录:\rt-thread\bsp\at32\at32f437-start,如下图所示:
打开project项目,可以看到main函数为3个LED流水灯的功能
编译后,直接下载到板子上,可以看到实验现象。
打开串口调试助手,也可看到串口打印出来的信息。
|