|
DHT11是单总线控制的,我设置如下:
static PIN_State AM2120PinState;
static PIN_Handle AM2120PinHandle;
PIN_Config AM2120PinTable[] =
{
Board_DIO22 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP,
PIN_TERMINATE
}
static void AM2120InputInitial(void)//设置端口为输入
{
//设置为输入
PIN_setConfig(AM2120PinHandle, PIN_BM_OUTPUT_MODE | PIN_BM_INPUT_MODE, Board_DIO22 | PIN_GPIO_OUTPUT_DIS | PIN_INPUT_EN | PIN_PULLUP);
}
static void AM2120OutputInitial(void)//设置端口为输出
{
//设置为输出
PIN_setConfig(AM2120PinHandle, PIN_BM_OUTPUT_MODE | PIN_BM_INPUT_MODE, Board_DIO22 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX);
}
后续调试发现,io口一直处于高电平,下拉不起作用,下拉代码如下:
AM2120OutputInitial();//设置端口为输出
PIN_setOutputValue(AM2120PinHandle, Board_DIO22, 0);//DATA_PIN=0;
希望大家能帮我解答下,具体代码见附件。(程序是5S启动一次
if (events & SBP_TEST_EVT)
{
Util_startClock(&testClock);
DHT11_Read_Humiture(sbDHT11_data); )
|
|