久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
void IO_IN_UpData(void) 這C語言函數(shù)其中的邏輯關(guān)系 有大佬能指點(diǎn)下嗎?
[打印本頁]
作者:
0711zhao
時(shí)間:
2022-3-13 10:01
標(biāo)題:
void IO_IN_UpData(void) 這C語言函數(shù)其中的邏輯關(guān)系 有大佬能指點(diǎn)下嗎?
#include <common.h>
#define IO_ON 1
#define IO_OFF 0
GPIO_TypeDef *IO_OUT_GPIOx[1] = {GPIOB};
uint16_t IO_OUT_GPIO_Pin[1] = {GPIO_Pin_9};
BitAction IO_OUT_BitVal[1] = {Bit_RESET};
uint8_t IO_IN_value[16];
void IO_Init(void)
{
uint8_t i;
for(i = 0; i < 16; i++)
IO_IN_value[i] = IO_OFF;
}
uint8_t* IO_GetDate() //16位IO口的數(shù)據(jù)
{
static uint8_t IN[16];//C不支持在函數(shù)外返回局部變量地址,除非定義局部變量為static
IN[0] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
IN[1] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7);
IN[2] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0);
IN[3] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1);
IN[4] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10);
IN[5] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11);
IN[6] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12);
IN[7] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
IN[8] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14);
IN[9] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15);
IN[10] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8);
IN[11] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11);
IN[12] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_12);
IN[13] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);
IN[14] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6);
IN[15] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
return IN;
}
void IO_IN_UpData(void) //這個(gè)函數(shù)不是很明白其中的邏輯關(guān)系 有大佬能指點(diǎn)下嗎?
{
uint8_t i;
uint8_t *In_Buf;
static uint8_t IO_in_Buf[16]; //16位數(shù)據(jù)緩存
In_Buf = IO_GetDate(); //把獲取的16位IO口數(shù)據(jù)給緩存
for(i = 0; i < 16; i++)
{
IO_in_Buf[i] = IO_in_Buf[i] << 1; //沒得到一位數(shù)據(jù)左移一位
IO_in_Buf[i] &= 0x3f;
if((*(In_Buf+i)) == 0x01)
{
IO_in_Buf[i] |= 0x01; //為什么
}
}
for(i = 0; i < 16; i++)
{
if(IO_in_Buf[i] == 0)
{
IO_IN_value[i] = IO_OFF;
}
else if(IO_in_Buf[i] == 0x3f)
{
IO_IN_value[i] = IO_ON;
}
}
}
void IO_OUT_UpData(uint8_t add,uint8_t size,uint8_t *Mode,BitAction shanshuo)//(地址 大小 模式 閃爍)
//bitactiion就是一個(gè)枚舉類型的變量,表示這個(gè)位是高電平還是低電平
{
uint8_t i = 0;
for(i = add;i < (add + size);i++) //首地址+長度 累加
{
if(Mode[i] == 2)
{
IO_OUT_BitVal[i] = shanshuo; //模式為2 閃爍
}
else if(Mode[i] == 1)
{
IO_OUT_BitVal[i] = Bit_SET; //模式為1 高電平
}
else
{
IO_OUT_BitVal[i] = Bit_RESET; //其他為低電平
}
GPIO_WriteBit(IO_OUT_GPIOx[i], IO_OUT_GPIO_Pin[i], IO_OUT_BitVal[i]); //寫入GPIO的針腳的電平狀態(tài)
}
}
void IO_PowerRun(void)
{
uint8_t power_mode = 2; //電源模式為2
static BitAction LED_shanshuo = Bit_RESET; //LED閃爍 置0
if(Bit_RESET == LED_shanshuo)
{
LED_shanshuo = Bit_SET; //為0置1
}
else
{
LED_shanshuo = Bit_RESET; //為1置0 閃爍
}
IO_OUT_UpData(0,1,&power_mode,LED_shanshuo); //為什么沒有延遲
}
復(fù)制代碼
作者:
0711zhao
時(shí)間:
2022-3-13 10:02
里面的備注是我自己的理解加的 如果有錯(cuò)誤希望大佬指正
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩一区二区在线观看视频
|
亚洲国产成人精品女人久久久
|
国产一区二区三区四区五区加勒比
|
色视频欧美
|
色婷综合网
|
亚洲精品乱码久久久久久按摩
|
精品久久国产
|
狠狠躁夜夜躁人人爽天天高潮
|
国产一区二区欧美
|
91精品国产乱码久久久久久久久
|
看一级黄色毛片
|
日韩精品成人
|
在线观看欧美日韩视频
|
亚洲看片网站
|
久久伊人精品一区二区三区
|
四虎影院在线免费观看
|
激情网站
|
99精品国产一区二区三区
|
日韩欧美精品一区
|
色欧美综合
|
99久热在线精品视频观看
|
国内精品久久精品
|
日本在线一区二区
|
热99精品视频
|
热久久免费视频
|
а_天堂中文最新版地址
|
黄色在线免费看
|
国产91在线视频
|
久久小视频
|
亚洲欧美在线一区
|
久久精品国产免费看久久精品
|
亚洲精品一区二三区不卡
|
国产精品高潮呻吟久久久久
|
青青久草
|
91在线视频在线观看
|
亚洲入口
|
亚洲高清成人在线
|
中文字幕一区在线
|
成人妇女免费播放久久久
|
国产一级免费视频
|
日本特黄a级高清免费大片 特黄色一级毛片
|