问题描述
在使用ATMEL Studio 7在SAM R34芯片上进行串行通信的过程中,我度过了一段糟糕的时光。 通常,当我询问时会收到“检查示例”的响应(扰流板警报,没有示例)
#include <asf.h>
#include "sio2host.h"
#include "lorawan_app.h"
#include "pulse_counter.h"
#include "serial.h"
struct usart_module usart_instance;
int main(void)
{
system_init() ;
delay_init() ;
delay_ms(5) ;
Enable_global_interrupt() ;
sio2host_init() ;
pulse_counter_init() ;
lorawan_app_init() ;
lorawan_app_configuration(ISM_JPN923) ;
lorawan_app_join() ;
struct usart_config config_usart;
usart_get_config_defaults(&config_usart);
#if(SAMR30E)
{
config_usart.baudrate = 9600;
config_usart.mux_setting = CDC_SERCOM_MUX_SETTING;
config_usart.pinmux_pad0 = CDC_SERCOM_PINMUX_PAD0;
config_usart.pinmux_pad1 = CDC_SERCOM_PINMUX_PAD1;
config_usart.pinmux_pad2 = CDC_SERCOM_PINMUX_PAD2;
config_usart.pinmux_pad3 = CDC_SERCOM_PINMUX_PAD3;
while (usart_init(&usart_instance,CDC_MODULE,&config_usart) != STATUS_OK) {
}
}
#else
{
config_usart.baudrate = 9600;
config_usart.mux_setting = EDBG_CDC_SERCOM_MUX_SETTING;
config_usart.pinmux_pad0 = EDBG_CDC_SERCOM_PINMUX_PAD0;
config_usart.pinmux_pad1 = EDBG_CDC_SERCOM_PINMUX_PAD1;
config_usart.pinmux_pad2 = EDBG_CDC_SERCOM_PINMUX_PAD2;
config_usart.pinmux_pad3 = EDBG_CDC_SERCOM_PINMUX_PAD3;
while (usart_init(&usart_instance,EDBG_CDC_MODULE,&config_usart) != STATUS_OK) {
}
}
#endif
usart_enable(&usart_instance);
usart_serial_putchar(usart_inst_t,'a');
while(1)
{
SYstem_RunTasks() ;
lorawan_app_sleep() ;
}
}
我在CDC_SERCOM_MUX_SETTING;
和每条CDC_SERCOM_PINMUX_PAD0;
0-3行中都遇到错误。
该代码直接来自该指南:https://asf.microchip.com/docs/latest/sam0.drivers.tcc.unit_test.saml21_xplained_pro/html/asfdoc_sam0_sercom_usart_basic_use_case.html
但是,这似乎无效。
关于如何使它起作用的任何想法?非常感谢!
解决方法
在atmel studio 7中查看示例项目“ SAM USART驱动程序-SAM R34 Xplained Pro的单元测试”,希望对您有所帮助。