日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SPI单片机发送ARM接收

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SPI单片机发送ARM接收 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

發送:

void MCUSPI_WRITE_ADDRESS_DATA(unsigned char data) {unsigned char i=0;ENABLE_SPI_CS();//????????_delay(10);DISABLE_SPI_CS();Master(data);ENABLE_SPI_CS();//???????? _delay(10);}
void Master(unsigned short Data) { unsigned short temp=0b10000000;Master_SDO_DATC=0;//數據線輸出Master_SCK=0;do{ Master_SDO_DAT=Data & temp; //Set SDO StateMaster_SCK=1; _delay(3); Master_SCK=0; //Generate SCK Clocktemp>>=1; //Next Bit} while (temp!=0);Master_SDO_DAT=0;Master_SCK=0; }
void SPI_INIT(void){_cp0c=0x08; _cp1c=0x08; //MCU做主機的配置Master_SPIENC=0;Master_SDO_DATC=0;Master_SDI_DATC=0;Master_SCKC=0; }void main() {InitPowerOn();SPI_INIT();PAUSE(300);while(1){#if 1if(1==usbpower_flag){UsbPowerOn();}else{UsbPowerOff();}if(1==buttonpower_flag){ButtonPowerOn();}else{ButtonPowerOff();}//Key_record();//Key_audio();#endif//enter_sleep();//MCUSPI_WRITE_ADDRESS_DATA(0xa3);//SPI_WRITE_ADDRESS_DATA(0x1e,0x40);MCUSPI_WRITE_ADDRESS_DATA(0xb4);} }

接收:

void rtc_mcu_spi_init(void) {printk("---------rtc_mcu_spi_init--------------\n");gpio_config(MCU_SPI_EN, GPIO_FUNC_SW_INPUT);gpio_config(MCU_SPI_MISO, GPIO_FUNC_SW_INPUT);gpio_config(MCU_SPI_MOSI, GPIO_FUNC_SW_OUTPUT);gpio_config(MCU_SPI_SCL, GPIO_FUNC_SW_INPUT);gpio_set(MCU_SPI_EN);gpio_clr(MCU_SPI_SCL);gpio_set(MCU_SPI_MISO);gpio_set(MCU_SPI_MOSI);//spi_config(MCU_SPI_ID, MCU_SPI_MODE, MCU_SPI_DFS, MCU_SPI_BAUD_RATE);//spi_master_config(SPI_MASTER2, 0, MCU_SPI_MODE, MCU_SPI_DFS, MCU_SPI_BAUD_RATE);//spi_config_ena_pin_polarity(SPI_MASTER2, 0, SPI_CS_POL_HIGH); }void rtc_mcu_spi_handler(int eid) {u16 reg;u16 data[2];u16 dat[2];unsigned char i;unsigned char dataspi;while(!gpio_val(MCU_SPI_EN));//一開始就是0、得等一下while(gpio_val(MCU_SPI_EN)); if(!gpio_val(MCU_SPI_EN)){ //if tha MCU_SPI_EN is low do for(i = 0; i <8; i ++){ dataspi |= gpio_val(MCU_SPI_MISO);if(i<7){while(gpio_val(MCU_SPI_SCL));while(!gpio_val(MCU_SPI_SCL)); }dataspi <<= 1;} }printk("======dat[0]===========:%d, %x\n",dataspi,dataspi); }
//weiqifartc_mcu_spi_init();app_timer_register(TIMER_1HZ, rtc_mcu_spi_handler);搞了一天、模擬的話感覺有點眉頭了、如果用ITRON系統里的API搞不出來、那后面可能還是要用模擬的、 安霸這個鳥系統、BUG真他媽多

總結

以上是生活随笔為你收集整理的SPI单片机发送ARM接收的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。