不确定我是否在寻找错误的地方,但我很难找到一些分步代码,它们展示了如何操作引脚IO,以及控制I2C,SPI和USART。
挖掘互联网,我确实找到了两个显示IO的示例,用于打开LED,使用Atmel studio 7
#include <asf.h>
#define F_CPU sysclk_get_cpu_hz()
#define __DELAY_CYCLE_INTRINSICS__
int main (void)
{
board_init();
PORT ->Group[0].DIRSET.reg = PORT_PA10;
while (1)
{
PORT ->Group[0].OUTSET.reg = PORT_PA10;
}
}
在另一个例子中,开启引脚的相同操作以完全不同的方式完成,额外的延迟使LED闪烁。我记得这是“ASF”,Atmel API用于促进事情。
#include <asf.h>
int main (void)
{
system_init();
delay_init();
while(true)
{
delay_ms(250);
port_pin_set_output_level(LED_PIN, LED_ACTIVE);
delay_ms(250);
port_pin_set_output_level(LED_PIN, LED_INACTIVE);
}
}
这一切都很棒;我确实瞥见了如何做事;但我现在想用SERCOM与USART,I2C和SPI的其他设备进行通信。我很难有一个明确的分步示例,这样的用法。
我确实尝试过自己的实验,但现在我正处于需要遵循的地方,无论是书籍,教程还是视频。也许我找不到文档,因为我找的是特定芯片的例子?但并非所有的ARM芯片都以相同的方式工作,使用相同的代码,所以我很遗憾......作为ARM编程的初学者也无济于事。
答案 0 :(得分:1)
嗯,Atmel是我最喜欢的制造商之一,因为他们的开发工具是免费的,全面的,并且有很好的文档记录。我特别喜欢它们的API,因为它易于使用且灵活。 大多数情况下,API是最佳解决方案(例如,实现您自己的USB驱动程序/堆栈非常困难)。但是,据我所知,在某些情况下,您不想使用API,但它仍然是一个非常好的起点。
我建议您在Atmel Studio(文件/新建/示例项目)中创建示例项目。然后,您可以复制并粘贴您需要的位(当您仍在使用Atmel部件时,您不会侵犯许可证)。例如,有一个&#34;快速启动SAM SERCOM USART驱动程序&#34;。
如果您需要有关API的文档,只需单击ASF资源管理器中的API文档即可。例如,SAMD21的SERCOM USART记录为here和here。