在做一個17芯線纜通斷檢測的程式,利用10個OUT口和10個IN口,依次控制OUT輸出高低電平,希望把OUT口位帶地址放進陣列里面,請教應該怎么實作?對指標和位帶操作的指標放入陣列的操作不熟悉,請指教。
代碼如下:
*****以下頭檔案:
#define LINE_NUM_SUM 17
#define OUT0 PAout(0)
#define OUT1 PBout(1)
#define OUT2 PBout(2)
#define OUT3 PBout(3)
#define OUT4 PBout(4)
#define OUT5 PAout(5)
#define OUT6 PBout(6)
#define OUT7 PBout(7)
#define OUT8 PBout(8)
#define OUT9 PBout(9)
#define OUT10 PBout(10)
#define OUT11 PBout(11)
#define OUT12 PBout(12)
#define OUT13 PBout(13)
#define OUT14 PBout(14)
#define OUT15 PBout(15)
#define OUT16 PAout(6)
#define OUT17 PAout(7)
**********以下C檔案
void checkInit()
{
u8 i = 0;
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOA_CLK_ENABLE(); //開啟GPIOB時鐘
__HAL_RCC_GPIOB_CLK_ENABLE(); //開啟GPIOE時鐘
__HAL_RCC_GPIOC_CLK_ENABLE(); //開啟GPIOE時鐘
//OUT 初始化
GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; //0 5 6 7
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽輸出
GPIO_Initure.Pull=GPIO_PULLDOWN; //下拉
GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH; //高速
HAL_GPIO_Init(GPIOA,&GPIO_Initure); //GPIOA OUT
GPIO_Initure.Pin=GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4; //1 2 3 4
GPIO_Initure.Pin|=GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9; //6 7 8 9
GPIO_Initure.Pin|=GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13; //10 11 12 13
GPIO_Initure.Pin|=GPIO_PIN_14|GPIO_PIN_15; //14 15
HAL_GPIO_Init(GPIOB,&GPIO_Initure); //GPIOB OUT
//測驗OUT能否回圈輸出
while(i < LINE_NUM_SUM)
{
if(OUTThis[i])
OUTThis[i] = 0;
else
OUTThis[i] = 1;
delay_ms(1000);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195633.html
標籤:單片機/工控
上一篇:AD9779內部鎖相環無法鎖定
