用的STM32F103做的,基本框架寫出來了,就是不清楚while里面怎么設定

uj5u.com熱心網友回復:
需要先明白邏輯,1,2也就PB0,PB1是用來選擇左邊一個8還是右邊一個8的, 不知道是高有效還是低有效while(1)
{
for(i=0;i<26;i++)//需要在main中加入i
{
GPIO_Write(GPIOB,0x01);//先選擇左邊一個,假設高有效,實際不需要寫整個PB口,只需要寫PB0,PB1就可
GPIO_Write(GPIOC,i/10);
GPIO_Write(GPIOB,0x02);//選擇右邊一個
GPIO_Write(GPIOC,i%10);
//后面加入延時免得重繪太快看不清
}
}
uj5u.com熱心網友回復:
我忘記說了,我想要的結果是0-26動態顯示,我自己又寫了一個,但還是不行
能再麻煩一下看一下嗎
uj5u.com熱心網友回復:
帖子里有插入代碼功能的,你插入圖片的沒發復制參考你的代碼的, 而且你要說下問題,比如編譯錯誤,Build失敗,或者最終結果不符合預期
void delay(void)
{
unsigned long i;//int 長度不夠會溢位
for(i=0;i<700000;i++);
}
int main()
{
unsigned char temp;//temp需要定義
//看你的代碼數碼管是需要查表
unsigned char ch10;//十位
unsigned char ch1;//各位
temp=0;
while(1)//假設要顯示temp值
{
char10=disp[temp/10];
char1=disp[temp%10];
GPIO_Write(GPIOB,0x01);//先選擇左邊一個,如果左右反了的話調整下片選邏輯
GPIO_Write(GPIOC,char10);
GPIO_Write(GPIOB,0x02);//選擇右邊一個
GPIO_Write(GPIOC,char1);
delay();
if(temp<26)temp++;else temp=0;//自己決定temp怎么變化
}
}
uj5u.com熱心網友回復:
兩個“8”字數碼管共用資料段位,一次只能選擇一個輸出要顯示的數值的7段碼,兩個管子的掃描頻率要大于25Hz轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/22194.html
標籤:單片機/工控
上一篇:智能澆花系統
