1.不要问我写这个,我们必须承认TI的接口做的很好,但是总有些垃圾传感器厂商自己的芯片的时序不是标准的。
所以写这个也是个无奈之举哦,我这边以简单的单总线为例。
step1:
如何设置输入,输出。
#define My_bus IOID_24 //gpio 数据端口定义
static PIN_Config PinsCfg[] =
{
My_bus | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP,
PIN_TERMINATE
};
static void My_busInputInitial(void)//设置端口为输入
{
//设置为输入
PIN_setConfig(hPins, PIN_BM_OUTPUT_MODE | PIN_BM_INPUT_MODE, Board_My_bus | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP);
}
static void My_busOutputInitial(void)//设置端口为输出
{
//设置为输出
PIN_setConfig(hPins, PIN_BM_OUTPUT_MODE | PIN_BM_INPUT_MODE, Board_My_bus | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX);
}
step2:
输出设置为1 ,设置为0 ,以及输入状态的读取状态。
My_busOutputInitial();
PIN_setOutputValue(hPins, Board_My_bus, 1);//My_busIO = 1;
My_busOutputInitial();
PIN_setOutputValue(hPins, Board_My_bus, 0);//My_busIO = 0;
My_busInputInitial();//设置IO输入
value=PIN_getInputValue(Board_My_bus)
step3:
延时函数:也就是做时序的时候用的哦. PS:这个准不准很重要,和你的系统时钟初始化有关,建议用示波器抓一个io的反转时序调节精准度。
static void My_busDelay_1us(unsigned int k)
{
while(k--)
{
CPUdelay(10);//1us
}
}
static void My_busDelay(unsigned int k)
{
My_busDelay_1us(k);
}
step4:
头文件:
#include <string.h>
#include <stdio.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Semaphore.h>
#include <ti/sysbios/knl/Queue.h>
#include "Board.h"
step5:
结语部分,会了这些就和8051没区别了,各位大佬们应该也就会了吧。