SPI单片机发送ARM接收
发布日期:2021-06-30 18:58:06
浏览次数:3
分类:技术文章
本文共 2229 字,大约阅读时间需要 7 分钟。
发送:
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 State Master_SCK=1; _delay(3); Master_SCK=0; //Generate SCK Clock temp>>=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 1 if(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); }
//weiqifa rtc_mcu_spi_init(); app_timer_register(TIMER_1HZ, rtc_mcu_spi_handler);搞了一天、模拟的话感觉有点眉头了、如果用ITRON系统里的API搞不出来、那后面可能还是要用模拟的、
安霸这个鸟系统、BUG真他妈多
转载地址:https://linus.blog.csdn.net/article/details/8896137 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月06日 06时40分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
攻防世界web进阶区i-got-id-200超详解
2019-04-30
sql注入总结学习
2019-04-30
leetcode46 全排列
2019-04-30
leetcode121 买卖股票的最佳时机
2019-04-30
leetcode 122 买卖股票的最佳时机II
2019-04-30
leetcode 309 最佳买卖股票含冷冻期
2019-04-30
leetcode 714 买卖股票的最佳时机含手续费
2019-04-30
leetcode3 无重复字符的最长子串
2019-04-30
leetcode 76 最小覆盖子串
2019-04-30
leetcode 1143. 最长公共子序列
2019-04-30
leetcode 83. 删除排序链表中的重复元素
2019-04-30
智能体 Intelligent Agent
2019-04-30
Network Compression网络压缩(一)
2019-04-30
GAN系列(零)—— GAN的发展(两条路线)
2019-04-30
Conditional GAN (CGAN) 条件生成网络
2019-04-30
强化学习(三) —— Policy Gradient 策略梯度
2019-04-30
docker安装oracle(win10)
2019-04-30
Cloudera Quickstart & HUE
2019-04-30
HUE
2019-04-30
CDH
2019-04-30