社区导航

 

搜索
查看: 93|回复: 0

[资料分享] CC1310直接操作寄存器编程

[复制链接]

653

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2020-5-12 22:13 | 显示全部楼层 |阅读模式

官方 CC13x0 提供的驱动为了兼容多种器件和操作系统比较抽象,例如串口发送函数是这样的:

int_fast32_t UART_write(UART_Handle handle, const void *buffer, size_t size)
{
    return (handle->fxnTablePtr->writeFxn(handle, buffer, size));
}
轻易看不出来是如何操作寄存器的,这种方式的驱动文件放在.../source/ti/driver 目录下面

 

下面通过一个串口收发函数的开发历程来说明下如何通过直接操作寄存器这种最底层的方式进行程序开发

1. 寄存器定义头文件

SDK提供的寄存器定义放在 .../source/ti/devices/cc13x0/inc目录下的一堆头文件里,hw_memmap.h文件里面定义了各个外设的基地址,例如:

#define UART0_BASE              0x40001000 // UART
各个外设对应的头文件里面定义了每个寄存器的偏移地址,例如hw_uart.h里面定义了

#define UART_O_CTL                                         0x00000030
2.寄存器读写

 hw_types.h里面定义了寄存器的读写函数

 

// Word (32 bit) access to address x
   // Read example  : my32BitVar = HWREG(base_addr + offset) ;
   // Write example : HWREG(base_addr + offset) = my32BitVar ;
   #define HWREG(x)                       \
        (*((volatile unsigned long *)(x)))
3. 一个串口自收自发完整示例代码如下: 

HWREGB(PRCM_BASE+PRCM_O_UARTCLKGR)=1; //UARTCLKGR 使能
    HWREGB(PRCM_BASE+PRCM_O_UARTCLKGS)=1; //UARTCLKGS 使能
    HWREGB(PRCM_BASE+PRCM_O_UARTCLKGDS)=1; //UARTCLKGDS 使能
    while(!(HWREGBITW(PRCM_BASE+PRCM_O_PDSTAT0,PRCM_PDSTAT0_SERIAL_ON_BITN))){
         HWREGBITW(PRCM_BASE+PRCM_O_PDCTL0,PRCM_PDCTL0_SERIAL_ON_BITN) =1;//SERIAL ON
    }
    HWREGBITW(PRCM_BASE+PRCM_O_CLKLOADCTL,PRCM_CLKLOADCTL_LOAD_BITN) =1;//LOAD ENABLE
 
   //IOC寄存器使能
    HWREG(IOC_BASE+IOC_O_IOCFG2) =0x2000600F;
    HWREG(IOC_BASE+IOC_O_IOCFG3) =0x00006010;
   
    //UART 波特率设置
    //HWREGBITW(UART0_BASE+UART_O_CTL,UART_CTL_UARTEN_BITN) =0;
    HWREGB(UART0_BASE+UART_O_CTL) =0;
    HWREGH(UART0_BASE+UART_O_IBRD) =0x1A;
    HWREGB(UART0_BASE+UART_O_FBRD) =0x3;
    HWREGB(UART0_BASE+UART_O_LCRH) =0x70;
    HWREGH(UART0_BASE+UART_O_CTL) =0x0301;
       /* Loop forever echoing */
    while (1) {
                if(HWREGBITB(UART0_BASE+UART_O_FR,4) == 0) {
              input[0] = HWREGB(UART0_BASE);
              HWREGB(UART0_BASE) = input[0];
           }

 

此帖出自无线连接论坛


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

词云| Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-14 05:45 , Processed in 0.073712 second(s), 20 queries , Gzip On, MemCache On.

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