1. 程式人生 > >CSR開發(轉載)

CSR開發(轉載)

CSR8670開發(3)-按鍵輸入

CSR8670開發(3)-按鍵輸入無評論

2017年7月20日 at 上午10:48分類:硬體 閱讀: 1,262 次

 

開發板上的按鍵預設都指定了功能,比如播放、音量、選曲控制等等
按鍵定義:
先將PIO口的物理按鍵對映成邏輯按鍵

上圖顯示PIO1口的物理按鍵指定為邏輯按鍵1
然後為邏輯按鍵指定相應的事件:

上圖顯示邏輯按鍵1指定為音量減少功能

要修改按鈕功能,可以修改sink_buttons.c檔案
修改函式ButtonsMessageHandler

在MESSAGE_PIO_CHANGED分支中是PIO口的狀態變化事件,在此分支中判斷按鍵
if (lMessage1->state & 1)
根據按鍵來新增相應的功能

CSR8670開發(2)-led、蜂鳴器、振動器控制

CSR8670開發(2)-led、蜂鳴器、振動器控制無評論

2017年7月18日 at 下午9:48分類:硬體 閱讀: 1,456 次

 

1、用bluelab開啟sink工程
2、修改main.c檔案


在main()函式前增加

#define MYLED (1 << 10) /* bit 10 */
#define MYDELAY 500 /* ms */
static void myled_controller( Task t, MessageId id, Message payload )
{
PioSet32( MYLED, (PioGet32() ^ MYLED) );//PIO10電平反轉
MessageSendLater( t, 0, 0, MYDELAY ); //設定延時
}
static TaskData myled_controller_task = { myled_controller };



設定PIO10閃爍
在main()函式中增加:
PioSetDir32(MYLED, MYLED); //設定PIO10為輸出
PioSet32(MYLED, MYLED); //初始化PIO10為高電平
MessageSend( &myled_controller_task, 0 , 0 );

重新編譯、執行程式,PIO10連線的指示燈會閃爍

將上面的PIO10改成PIO14,延時改為1ms,就可以驅動蜂鳴器發出500Hz的聲音

改成PIO15,可以驅動振動器動作

注意,當PIO被系統配置佔用的時候,如果用PioSet32設定PIO的數值,會導致設定語句執行失敗,比如PIO6被系統佔用:

此時用語句:
PioSet32( (1<<11)|(1<<10)|(1<<7)|(1<<6)|(1<<5), itemp); 會導致整條語句執行失敗

CSR8670開發(1)-初識開發板

CSR8670開發(1)-初識開發板無評論

2017年7月18日 at 下午8:04分類:硬體 閱讀: 1,207 次

 

買了一塊CSR8670藍芽開發板:

供電方式可以選USB、SPI偵錯程式及電池,一般預設是用SPI偵錯程式供電,但需注意如果用功放喇叭介面,最好還是用USB供電,否則喇叭功率過大容易燒偵錯程式。

板上有一個總的電源開關

還有一個藍芽控制開關MFB(多功能按鈕),控制藍芽開關:

開啟總電源開關、藍芽開關後即可用藍芽配對,播放音樂,此時只能用耳機介面播放,功放喇叭介面不可用。

如果要使能功放喇叭介面,需要用跳線連線J13的2腳及J9的7腳,即把SPK_EN接1.8V變成高電平

與此開發板配套的是ADK 3.5.1

藍芽FLASH的備份與燒寫:
可用ADK中的Blue Flash來備份晶片程式

要備份,先按“stop process”按鈕停止程式執行,然後點選“dump”按鈕:

要燒寫,先選擇檔案,然後停止程式執行,然後點選“download”下載程式

藍芽程式其實分為兩個部分:一個是藍芽程式程式碼區、另一個是配置儲存區。
配置資訊是通過ADK中的pstool和sink configuration tool進行配置

pstool對配置區域的所有引數都有效,sink configuration tool只對sink工程有效

藍芽程式程式碼可以通過BlueLab進行編寫、編譯和下載

PC工具把配置儲存在資料區域,在初始化的時候,程式程式碼會讀取這些資料,然後根據這些配置去具體初始化系統引數,hfp,a2dp,avrcp等。