藍芽4 0 BLE基礎之vdd檢測new

2022-08-27 02:57:09 字數 2931 閱讀 5477

外部

adc通道,我們現在用的是

a0腳,也就是

p00通道

把它設定成輸出的乙個模式。在程式中設定,**如下:

#include

#define hal_adc_ref_125v 0x00

#define hal_adc_dec064 0x00

#define hal_adc_chn_vdd3 0x0f

unsigned char cmd;

unsigned int read_vddvalue(void)

unsigned int value;

unsigned char tmpadccon3 = adccon3;

adcif=0;

adccon3=(hal_adc_ref_125v|hal_adc_dec064|hal_adc_chn_vdd3);    //選擇乙個程序為

125v

的基準電壓,設定抽取率,選擇

adc的引腳

while(!adcif);

value=adcl>>2;

value|=((unsigned int)adch)<<6;

adccon3=tmpadccon3;

return (value);

#pragma vector = urx0_vector

__interrupt void uart0_isr(void)

urx0if = 0;       // 清中斷標誌

cmd = u0dbuf;

void uartsendstring(char *data, int len)

unsigned int i;

for(i=0; iu0dbuf = *data++;

while(utx0if == 0);

utx0if = 0;

void inituart(unsigned int baudrate)

clkconcmd &= ~0x40;                        //設定系統時鐘源為

32mhz

晶振while(clkconsta & 0x40);                   //等待晶振穩定為

32mclkconcmd &= ~0x47;                        //設定系統主時鐘頻率為

32mhz   

percfg = 0x00;           //外設控制暫存器

usart 0的io

位置:0為p0

口位置1

p0sel = 0x0c;            //p0_2,p0_3用作串列埠(外設功能)

p2dir &= ~0xc0;          //p0優先作為

uart0

u0csr |= 0x80;           //設定為

uart

方式switch(baudrate)

case 115200:

u0gcr = 11;           

u0baud = 216;           //波特率設為

115200

break;

case 9600:

u0gcr = 8;           

u0baud = 59;           //波特率設為

9600

break;

default:

u0gcr = 8;           

u0baud = 59;           //波特率設為

9600

break;

utx0if = 0;              //uart0 tx中斷標誌初始置位

0u0csr |= 0x40;           //允許接收

ien0 |= 0x84;            //開總中斷允許接收中斷  

* 程式入口函式

void main(void)

unsigned int vddvalue;

unsigned char buf[5]="0.0v";

inituart(115200);

while(1)

if(cmd=='a')

cmd = 0;

vddvalue=read_vddvalue();

vddvalue=(vddvalue*25)>>8;//(vddvalue*1.25/2^7)放大10倍

(vddvalue*12.5/2^7)

//(vddvalue*25/2^8)->(vddvalue*25)>>8

vddvalue=vddvalue*3;//vdd/3作為乙個

adc輸入通道,因此對該通道的檢測,得到

vdd/3

的值,那麼

vdd高行是這個值乘以

3buf[0]=vddvalue/10+'0';

buf[1]='.';

buf[2]=vddvalue%10+'0';

uartsendstring(buf,strlen(buf));

暫存器圖表:

執行結果,傳送乙個a產生乙個資料

如果採用其他的通道,轉換過後也是和這個一樣的,這裡暫存器有選擇的地方,就是用正電壓作為參考,使用內部的溫度感測器來採,對應的地方把它旋轉過來,最後可以傳播或者獲取這個相應的溫度資訊。

iOS藍芽4 0 BLE 開發

本文將一步一步講解如何使用corebluetooth框架來與各種可穿戴裝置進行通訊,使用 小公尺手環 來進行基本的測試。macbook pro mac os x 10.10 xcode 6.3.2 iphone 5s v8.1 小公尺手環 從上面這幅圖可以看到,我們的ios裝置是central,用來...

藍芽4 0(BLE)電子煙方案

電子香菸得到了越來越多的消費者的青睞。它不僅僅能讓吸菸者的健康不受到危害,而且還能讓他們的吸菸行為不受地點的限制。但是似乎有人認為 這些電子香菸的功能還 應該更強大點 近日,一種更加智慧型化的電子香菸問世,它就是smokio 據悉,這種電子香菸使用藍芽 針對這一產品市場,信馳達開發出藍芽4.0 電子...

藍芽4 0BLE協議棧介紹

問題 什麼是ble協議棧?ble協議棧與ble協議的關係?顧名思義,人類之間需要一種語言才能溝通,機器之間,電子之間也有乙個標準,也就是作為通訊標準,也就是通訊協議。協議 定義了一系列通訊標準,通訊雙方都按照這一標準,進行資料通訊。協議棧 協議的具體實現形式,實現的函式庫,韌體庫。把個個協議集合到了...