Closed BellssGit closed 1 year ago
解决了,看起来是我的源代码初始化顺序有问题,不过官方为啥没问题就很奇怪了
只需要修改PIO部分的代码,从这里抄的
% c-sdk {
static inline void test_program_init(PIO pio, uint sm, uint offset) {
pio_sm_config c = test_program_get_default_config(offset);
sm_config_set_sideset_pins(&c, test_CLK_PIN);
sm_config_set_out_pins(&c, test_CLK_PIN, 1);
pio_gpio_init(pio, test_CLK_PIN);
pio_sm_set_consecutive_pindirs(pio, sm, test_CLK_PIN, 1, true);
pio_sm_init(pio, sm, offset, &c);
pio_sm_set_enabled(pio, sm, true);
}
%}
目标
在PIO上实现一个只发送的SPI接口,发送信号给ADC和CCD驱动芯片
问题
本来应该还有另一个问题的(OUT指令可以正常清空寄存器,但是引脚没输出),不过为了排错还是一个个来
正如标题所介绍的一样,我写了个测试Side-Set功能的最小测试程序,代码如下:
main.c
PIO部分
运行时可以输出
但是用示波器捅对应引脚没有任何输出,换成其他的GPIO引脚也是一样的结果。
我的手头没有调试器,所以也不知道芯片内部到底发生了啥事情。还请各位帮忙代码捉一下虫