打印
[Atmel]

每天跟我读点资料:SAM D SERCOM USART 配置6

[复制链接]
1417|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Calculate_baud_value 函数用来做这个操作。
System_gclk_chan_get_hz(SERCOM3_GCLK_ID_CORE)函数将返回SERCOM3产生时钟频率。
CTRLA寄存器用来配置数据传输顺序,TxDRxD管脚,采样速率,运行在待机模式,USART时钟选择。在上边的功能中数据顺序为MSBSERCOM PAD[1]用做RxD线,SERCOM PAD[0]用做TxD线,16倍过采样被使用,在所有休眠模式中通用时钟使能,内部时钟用于USART
CTRLB寄存器用来配置字符长度和传输接收使能。在上面的功能中字符为8位并且需要应用接收和发送,所以发送和接收使能。
。每个外设被检测的中断线连到Cortex M0+核的中断相量控制器
。在上面功能中SERCOM3中断请求线(IRQ-12)被使能
。中断设置寄存器用来使能所需的中断。在上面功能中RXC-接收完成中断被设置。这个数据通过EDBGPC终端上被接收。所以一但接收数据,中断将被触发并通知CPU
CTRLACTRLB,和波特率寄存器只可以在USART禁止时写,因为这些寄存器都使能保护。所以一但这些寄存器被配置,USART就被使能。
。处理CLK_SERCOMx_APBGCLK_SERCOMx_CORE之间的非同步,一个寄存器必须当访问时同步。CTRLA寄存器是写同步的所以它需要检测同步尽快信号
4.2.5 外扩USART时钟初使化
SAM D21 Xplained Pro 同另一个SAM D21 Xplained Pro 板子通讯通过EXT2连接口。
SERCOM2线连接到EXT2连接口。改变SERCOM2的核心时钟将使用于应用程序中。
/* External connector(SERCOM2) UART bus and generic clock initialization */
void ext_usart_clock_init(void)
{
struct system_gclk_chan_config gclk_chan_conf;
uint32_t gclk_index = SERCOM2_GCLK_ID_CORE;
/* Turn on module in PM */
system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBC, PM_APBCMASK_SERCOM2);
/* Turn on Generic clock for USART */
system_gclk_chan_get_config_defaults(&gclk_chan_conf);
//Default is generator 0. Other wise need to configure like below
/* gclk_chan_conf.source_generator = GCLK_GENERATOR_1; */
system_gclk_chan_set_config(gclk_index, &gclk_chan_conf);
system_gclk_chan_enable(gclk_index);
}

相关下载

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝