SPI单片机发送ARM接收
生活随笔
收集整理的這篇文章主要介紹了
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接收的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 29 岁成为阿里巴巴 P8,工作前 5
- 下一篇: [sipdroid]3CX voip 服