在线时间26 小时
UID379097
注册时间2012-8-12
NXP金币231
TA的每日心情 | 无聊 2024-3-24 22:21 |
---|
签到天数: 54 天 [LV.5]常住居民I
中级会员
- 积分
- 460
- 最后登录
- 2024-4-18
|
准备
env安装和使用参考RTT官方文档。
MCUXpresso安装和使用参考NXP官方文档。
SPI、ADC、PWM配置
env配置
打开env,跳转到bsp\lpc55sxx\lpc55s69_nxp_evk目录中,然后输入命令menuconfig就会出现配置界面了,如下图:
进入Hardware Drivers Config-> On-chip Peripheral Drivers,选中Enable SPI、Enable ADC Channel、Enable PWM。其中PWM选CIMER2 Match1。
然后通过env工具更新一下组件和工程
MCUXpresso Config Tools配置
打开工程中的配置文件
SPI配置:
ADC配置:
PWM配置:
最后就是keil编译与烧写,最后进行测试。
PWM测试
从图中的操作结合LEDB现象可以知道,pwm驱动还是有问题的,查看驱动代码后发现问题,并进行修复。改完后的测试结果正确如下:
抓到的初始波形:
修改频率和占空比,pwm set 1 10000 20,结果如下:
修改频率和占空比,pwm set 1 100000 20000,结果如下:
ADC测试
打开ADC:
测量电压分别是1V,1.5V,2V,对应的0x4B3(1203),0x720(1824),0x99A(2458)
测试结果是没有问题的。
SPI测试
测试代码如下:
- #include "drivers/spi.h"
- static int spi_test(int argc, char **argv)
- {
- struct rt_spi_device spi8_dev;
- rt_err_t ret = rt_spi_bus_attach_device_cspin(&spi8_dev, "spi8-0", "spi8", GET_PINS(1, 1), NULL);
- if(ret != RT_EOK) {
- rt_kprintf("spi bus attach failed!");
- return -1;
- }
- do {
- struct rt_spi_configuration spi_cfg = {
- .mode = RT_SPI_MODE_0 | RT_SPI_MSB,
- .data_width = 8,
- .max_hz = 8000000,
- };
- ret = rt_spi_configure(&spi8_dev, &spi_cfg);
- if(ret != RT_EOK) {
- rt_kprintf("spi config failed!");
- break;
- }
- const char send_buf[]={"hello"};
- char recv_buf[10]={0};
- int size = rt_spi_transfer(&spi8_dev, send_buf, recv_buf, 5);
- rt_kprintf("spi transfer:%d\n", size);
- rt_kprintf("recv_buf:%s\n", recv_buf);
- }while(0);
-
- rt_device_unregister(&spi8_dev.parent);
- return 0;
- }
- MSH_CMD_EXPORT(spi_test, spi_test [option]);
复制代码
测试结果:
从波形看出CS引脚有问题,阅读代码找到问题,修改之后的结果如下:
展开波形后:
到此所有测试结束。
|
|