This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1312R7: Mixing Simplelink GPIO++ and driverlib GPIO

Part Number: CC1312R7


Is it safe to manipulate pins with driverlib/gpio.h while primarily using the GPIO++ driver? More specifically: Driverlib GPIO offers manipulation of multiple pins at once, which GPIO++ does not. Is it safe to use set/clear/toggle/write via driverlib, while doing all other operations via GPIO++?

Simplelink CoreSDK version


  • This is not recommended and not something we support. If you do this, you will be kind of on your own.

    Driverlib is not meant to be used directly by the application, but is a layer to be used for the TI drivers.

    The source code is available if customers for some reason do not want to use our drivers, but want to implement them themselves.

    We will not be able to debug/support you if you run into problems if choosing the path of mixing the use of our GPIO++ driver with GPIO maipulation through driverlib.



  • Thank you very much for this clarification. And in addition, I notice now that in the latest SDK version the multi-pin API in driverlib is removed. Am I understanding correctly that there is no way to do multi-pin operations anymore? (except manipulating registers directly)

  • I do not have the the details of the differences between the old pin driver, the GPIO driver and the GPIO++ driver.

    If there are some functions/APIs that were available before that you cannot find in the new drivers, please let me know exactly what API you were using before, and I will check if there is something in the new new drivers that supports the same thing, or if the functionality you are looking for is no longer supported.


  • Hi, I was wondering about the possibility to manipulate multiple pins at once. In driverlib these were for example GPIO_setMultiDIO() and GPIO_clearMultiDIO().

  • As I have understood the different PIN/ GPIO drivers: The aim is to have one driver that can be used for all. Not all the MCUs that uses this driver has the same underlaying features, meaning that something can be possible for one MCU and a different MCU can do something else with the DIOs.

    In your case, given that you know what you are doing and do required testing, it should be possible for you to add the wanted functionality to the GPIO++ driver. If you look at the driver code the driver sets the register fields that are described in the TRM. At the same time it could be some exceptions, meaning that the driver team has found that even though something is theoretically possible it could be that they have found out the it didn't work too well after all. 

  • In driverlib_cc13xx_cc26xx_4_20_00_00007 (May 31, 2022) all MultiDio functions were removed as they were unused in drivers
    and difficult to make compatible with CC13x4/CC2653/CC26x4.

    You can off course look a the implementation in an old SDK, but we will not be able to support you in manually manipulating registers when at the same time using our GPIO++ driver.