cc2652在使用过程中的一些注意事项

可能不只是cc2652有这些坑,估计cc26xx系列都存在。

CCS的预编译宏配置位置

屏幕截图 2023-07-25 100344.png屏幕截图 2023-07-25 100344.png

 时钟获取

时钟获取__STATIC_INLINE uint32_t SysCtrlClockGet( void )在sys_ctrl.h中,sys_ctrl.h没有在工程路径下面,在其sdk中

节拍时间获取 ICall_getTicks(); 单位10us,自加1;ICall_getTickPeriod()是单位,即10us;

回调函数设置

有两种方式设置回调函数:在.syscfg的Callback Function中设置,或者将其设置为NULL,在程序中使用GPIO_setCallback进行回调绑定;

无论使用上面哪种方式,都需要在GPIO_enableInt(CONFIG_GPIO_IRQ_3993)前面加上GPIO_init(),否则无法进入中断

IRQ在ENEXTIRQ中需要获取其电平

官方参考文件:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_g_p_i_o_8h.html

纳秒延时

受限于CC2652最大48M晶振的情况,无法实现ns级别延时,最快只能按如下实现62ns延时:

/* 3 cycles per loop: 1 loop @ 48 Mhz ~= 62 ns ; 8 loop @ 48 Mhz ~= 0.5 us */
    CPUdelay(1);

SPI和低功耗

CC2652的SPI普通模式参考文件:ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_s_p_i_8h.html

CC2652的SPI DMA模式参考文件:ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_s_p_i_c_c26_x2_d_m_a_8h.html

因为SPI传输用到了高频晶振,所以在SPI通信期间,设备无法进入待机状态,调用SPI_transferCancel()后可以进行待机状态

SPI_open(CONFIG_SPI_3993, &SPIparams)中的CONFIG_SPI_3993是在.syscfg中配置的

主协处理器复用SPI问题

经测试,主协处理器不能复用GPIO(包括SPI)

当主处理器配置SPI引脚后,如果调用了协处理器的初始化,则引脚被协处理器抢占;主处理器的引脚配置在Board_initGeneral(); 中,但是如果二次调用Board_initGeneral(); 进行抢占,会崩溃。

目前测的结果应该是当关闭协处理器后,控制权会自动转交给主处理器,这个待进一步验证。

DAC的带载

带载能力比较弱,uA级别,驱动电压型的MOS管都费点劲

 引脚配置

引脚配置可以用GPIO_write的方法,也可以使用PIN_setOutputEnable的方法

DIO31配置为输出时,程序在Board_initGeneral()崩溃(这个很奇怪,按说不应该啊);目前将引脚配置为DIO26可以

猜你喜欢

转载自blog.csdn.net/Fei_Yang_YF/article/details/132066485