本帖最后由 firefly2k 于 2022-6-23 19:54 编辑
LKS32两个比较吸引我的功能是内置电机驱动(后来发现是理解错了,是内置预驱动,而不是驱动)和PGA
拿到实际板子我才去仔细看规格书和这两个功能,看完后先提下建议再写其他的
1、内置电机预驱动:开发板最好是提供更高集成度,咋给的板子预驱动还是要放在外面的?这样体现不出芯片的优势和公司的能力呀
2、PGA:放大倍数有点小,市面上的PGA通常放大倍数都能到64以上的,很多是128的。081内置的还不到20倍,这显得有点太小了,实用性一下大打折扣了。另外,还有06x系列是整数20倍,咋到08x系列,连20倍都不到,还变成不是整数了(200/10.4)?按道理不是应该越做越好呀?
由于最近可能有点忙,LKS32评测要求时间内很多功能估计没时间测,我就先测两个最简单的功能,熟悉一下。先完成任务,后期有时间再慢慢测吧。
1、关于开发工具:
开发板上并非20脚JTAG接口,而是4线接口。官方说jlink, ulink, dap都支持。ST-Link好像有人说可以有人说不行。由于手上只有ST-Link,为了减少不必要的麻烦还是去买了个Jlink9。
2、开发板:
实际收到的板子是两块开发板,官网上应该是对应的下面图种红色圆圈的两个
开发板的实物如下图:
3、开发环境搭建:
我用的是Keil5.28,所以先下载和安装官方的Pack,链接如下:https://www.linkosemi.com/uploadfiles/Updatefile/nutstore/Keil_v5_device_pack/Linko.LKS08x_v1.0.5.rar
注意官方提供的例程里,芯片设置的型号不对,需要修改成与实物相同的LKS32MC081C8T8,否则下载时会报错。
另外,下载时碰到下面的错误提示,是因为下载算法没有加载的缘故。具体如下图中,加载后。下载一切正常
4、例程运行与试跑
4.1 GPIO例程
没想到官方的例程里会有错误,开始运行老出不来预期结果,有个LED始终不亮。
在gpio.led.h文件中
//LED1 P0.6
#define LED1_GPIO_PORT GPIO0 /* GPIO端口 */
#define LED1_GPIO_Mode GPIO_Mode_OUT; /*GPIO输出模式*/
#define LED1_GPIO_PuPd GPIO_PuPd_NOPULL /*GPIO上下拉模式选择*/
#define LED1_GPIO_PIN GPIO_Pin_15 /*输出GPIO端口号*/
明明注释中写的LED1用的是P0.6,不知道为啥官方程序里是P0.15。修改为:
//LED1 P0.6
#define LED1_GPIO_PORT GPIO0 /* GPIO端口 */
#define LED1_GPIO_Mode GPIO_Mode_OUT; /*GPIO输出模式*/
#define LED1_GPIO_PuPd GPIO_PuPd_NOPULL /*GPIO上下拉模式选择*/
#define LED1_GPIO_PIN GPIO_Pin_6 /*输出GPIO端口号*/
另外,对应的hardware_init.c文件中初始化部分也对应修改下
//配置LED1:P0.6
GPIO_StructInit(&GPIO_InitStruct); //初始化结构体
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //GPIO输出模式
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO0, &GPIO_InitStruct);
修改成:
//配置LED1:P0.6
GPIO_StructInit(&GPIO_InitStruct); //初始化结构体
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //GPIO输出模式
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO0, &GPIO_InitStruct);
修改后该例程就一切正常了
4.2 双线UART0传输 例程
别的基本没啥问题,收发都正常,只是延时函数时间太短,发的数据太快,接受的数据可能不小心看不到。建议把延时的函数时间改长点就好了
delay(0X2FFFF); //延时
修改为:
delay(0XFFFFF); //延时
后续有时间,其他例程测试会继续再添加
|