❶ 一個關於stm32觸摸的問題
❷ 關於單片機的熔絲位
CK就是單片機的始終周期。
啟動延時標示在單片機工作電壓上升到限值之後再延遲一段時間才復位完成,保證單片機的復位操作可靠,避免程序飛跑。
❸ 單片機(dsPIC33CK)代碼注釋求解釋
哈哈,不能直接看數字表面,它這種給都是寄存器賦值,你要真的理解這些操作什麼意思,你要找到這個單片機的用戶手冊,找到這個寄存器的每一位代表什麼意思,然後把這些16進制的數轉換成2進制,對應每一位什麼意思就懂了
❹ 關於兩塊單片機之間的串口通信,接收到的數據顯示出來是錯誤的,不知道是發送錯了,還是接收錯了
http://blog.163.com/asm_c/blog/static/24820311320146138270129/
參考這個試試。
❺ 請教一個i2s的問題,我在使用STM32,型號為STM32F103VCT6,該型號單片機為大容量單片機。
就是MCK,提供時鍾信號的,在ZET6上用過,貌似用的是pc6
❻ 請問下單片機中的SCLK和SDA和SCL各是什麼意思,SDA和SCL我在I2C匯流排中見過,但是後來在時鍾晶元又看到了
SDA 就相當於其中的雙向IO傳輸數據的而SCLK就是時鍾啦
❼ 單片機stm32中的PA0-CK_IN干什麼用的
該引腳主要功能有PA0 和CK_IN功能,PA0是GPIO PortA 0引腳,CK_IN 是系統時鍾輸入,用戶可以在引腳接有源晶振,提供時鍾給系統使用!
❽ 單片機stm32中的PA0-CK_IN干什麼用的
該引腳主要功能有PA0
和CK_IN功能,PA0是GPIO
PortA
0引腳,CK_IN
是系統時鍾輸入,用戶可以在引腳接有源晶振,提供時鍾給系統使用!
❾ 單片機紅外遙控問題,要求:一個單片機發送數字另一個單片機也要能顯示出相應的數字
呵呵,我剛前幾天剛編好的程序,你的圖片太小了,看不清楚
只要單片機原理圖沒用(你這個只是接受用的期間,沒有發射的器件),你的紅外晶元是什麼型號的,要不怎麼知道它的協議是什麼~~~
它的時序還是有要求的,也就是紅外晶元(也就是你要發射的紅外線的晶元),它的型號不一樣,那麼它的協議就不一樣,你先看看你紅外發射晶元的型號,找到datasheet,然後就是找到協議,我這可以給你提供方法,把程序貼出來吧,你自己看看吧
#include"reg52.h"
#include"MacroAndConst.h"
#include"Foot.h"
#include"Delay.h"
#include"intrins.h"
ucharnum;
ucharkey_code=0; //遙控鍵值
ucharnew_code=0; //有無新按鍵
uinttemp_key_code=0; //鍵值暫存
ucharkey_bit_count=0; //鍵值碼脈沖計數
uintcount=0; //定時中斷次數計數
uinttemp_count=0; //定時中斷計數暫存
ucharcommon_code_count=0; //前導碼脈沖計數
ucharir_flag=0; //脈沖接收器所處的狀態,0:無信號,1:系統碼接收區,2:數據碼接收區
//初始化
voidinter_init()
{
ir=1; //紅外埠寫1
TMOD=0X02; //定時器0,模式2,8位自動重裝
TH0=(256-50)/256; //定時50us
TL0=TH0;
ET0=1; //允許定時器0中斷
IT1=1; //INT1下降沿觸發
ET1=1; //允許外部中斷
EA=1; //開總中斷
}
//定時器中斷
voidtimer0() interrupt1
{
count++; //定時器中斷次數累加
}
//外部中斷,紅外解碼程序
voidint1() interrupt2
{
TR0=1;
if(count>12&&count<270) //如果信號合法,則放入buf_count,count清0,對下一個脈沖信號計時
{
temp_count=count;
count=0;
}
delay_10us(10); //延時100us來消除下降沿跳變抖動
if(ir==0) //INT1引腳穩定為低電平,則表明確實是信號,count重新計數,由於上面延時50us,因此要補償一次T0中斷
{
count=2;
}
if(temp_count>12&&temp_count<270) //若收到信號合法,則再次進行信號分析
{
if(ir_flag==0) //如果之前未收到起始碼
{
if(temp_count>21&&temp_count<270) //判斷是否起始碼13.5
{
ir_flag=1; //系統標記
temp_count=0;
}
}
elseif(ir_flag==1) //收到起始碼
{
if(common_code_count>=26) //若收到26個脈沖
{
ir_flag=2; //數據解碼標志
common_code_count=0; //系統碼計算清0
temp_count=0; //中斷計數暫存清0
}
elseif((temp_count>40&&temp_count<70)||(temp_count>12&&temp_count<32))
{
temp_count=0;
common_code_count++; //每收到一個信號自加1
}
}
elseif(ir_flag==2) //進入數據編碼接收
{
if(key_bit_count<8) //收到數據少於8位,則將收到的數據寫入buf_key_code
{
if(temp_count>40&&temp_count<70)
{
temp_count=0;
temp_key_code>>=1;
temp_key_code|=0x80; //收到1
key_bit_count++; //數據脈沖累加
}
elseif(temp_count>12&&temp_count<32)
{
temp_count=0;
temp_key_code>>=1; //收到0
key_bit_count++;
}
}
else //若收到8位數據則做以下處理
{
ir_flag=0; //接收狀態返回到空閑
key_code=temp_key_code;
key_bit_count=0;
temp_key_code=0;
temp_count=0;
TR0=0;
new_code=1;
}
}
}
}
好好看看吧,使用的定時計數器,挺簡單的,重點在於協議,明白了協議就哦了
呵呵,記得給分啊~~
(*^__^*)嘻嘻……