[经验] 原创:sam4s16c的寄存器配置基础教程---USART配置

[复制链接]

版主

发表于 2016-11-30 14:15:43   961 查看 6 回复 显示全部楼层 倒序浏览
分享
本帖最后由 lee_st 于 2016-11-30 14:18 编辑

最近项目涉及到和供应商合作,之前用atmel studio不能继续用了,不得不改用keil,于是潜水了一段时间,静下来仔细分析Datasheet,终于完成了,几乎所有外设驱动的寄存器配置,可以直接用于sam4s系列。看不懂的自己仔细研究Datasheet吧。个人的爱好是喜欢寄存器直接配置。
看官方的库,太乱,太累。
不喜欢拿来主义。
第三部分
配置usart
首先要使能IO口的时钟,如使能PIOA口,操作如下
PMC->PMC_PCER0 = 1 << ID_PIOA;
第二,禁止IO口
        mask = PIO_PA5 | PIO_PA6;
        PIOA->PIO_PDR = mask;
第三,设置对应的外设使能寄存器
        PIOA->PIO_ABCDSR[0] &= ~mask;
        PIOA->PIO_ABCDSR[1] &= ~mask;
第四,设置复合外设寄存器
p_pio->PIO_MDER = ul_mask;
第五,禁止上拉电阻
p_pio->PIO_PUDR = ul_mask;
第六,设置IO的缺省值
p_pio->PIO_CODR = ul_mask;
第七,配置IO口作为输出
        p_pio->PIO_OER = ul_mask;
        p_pio->PIO_PER = ul_mask;



下面开始USART的设置
首先,使能时钟
PMC->PMC_PCER0 = 1 << ID_USART0;

第二配置控制寄存器
        USART0->US_CR = US_CR_RSTTX | US_CR_TXDIS | US_CR_RSTRX | US_CR_RXDIS | US_CR_RSTSTA | US_CR_RTSDIS | US_CR_DTRDIS;
第三,设置模式寄存器
        USART0->US_MR =US_MR_USART_MODE_NORMAL   /* 硬件握手模式 */
                                        | US_MR_USCLKS_MCK          /* 选择的MCK */
                                        | US_MR_CHRL_8_BIT          /* 数据位为8位  */
                                        | US_MR_PAR_NO              /* 无校验位  */
                                        | US_MR_NBSTOP_1_BIT            /* 停止位为1位 */
                                       ;
[td]






[/td]第四,设置波特率,下面提供的方式,任选
//        USART0->US_BRGR= 0x35;//115200
        USART0->US_BRGR= 0x27c;//9600
//        USART0->US_BRGR= USART_BRGR_CD(120000000/(16*baud));
第五,禁止DMA功能
       USART0->US_PTCR = UART_PTCR_RXTDIS | UART_CR_TXDIS;
第六,使能中断        
        USART0->US_IDR = 0xffffffff;
        USART0->US_IER = US_IER_RXRDY;
第七,使能收发
        USART0->US_CR = US_CR_RXEN | US_CR_TXEN;
最后,使能中断        
        NVIC_DisableIRQ(USART0_IRQn);
        NVIC_ClearPendingIRQ(USART0_IRQn);
        NVIC_SetPriority(USART0_IRQn,pri);
        NVIC_EnableIRQ(USART0_IRQn);





水平有限,请大家多指点,谢谢!
后续还有很多外设的寄存器配置教程,请大家关注。。。。。。。

标签:寄存器

版主

发表于 2016-11-30 14:19:08    楼主|
自己顶一下,哈哈哈
回复

举报

助理工程师

发表于 2016-12-1 14:10:53  
谢谢分享。很棒的原创资料
回复

点赞 举报

版主

发表于 2016-12-1 14:29:49    楼主|
谢谢支持,多给点鼓励更好
回复

点赞 举报

版主

发表于 2016-12-1 14:30:20    楼主|
elecfansLily 发表于 2016-12-1 14:10
谢谢分享。很棒的原创资料

我申请的试用,一个也没批准,真郁闷
回复

点赞 举报

高级工程师

发表于 2016-12-1 21:57:39  
这个有难度,,,,,
回复

举报

版主

发表于 2016-12-2 08:41:18    楼主|
什么难度啊???
回复

举报

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区