当前位置: 首页 > news >正文

做网站维护前景中国建设银行网上银行个人登录官方网站

做网站维护前景,中国建设银行网上银行个人登录官方网站,永川做网站的公司,网站视频不能下载怎么保存视频最近在搞单片机和A5S的SPI通信 1、A5S是跑的是ITRON的系统、有自己相关的SPI API函数2、单片机这边也是可以熟悉了#xff0c;发送#xff0c;接收什么的#xff0c;我都可以自模拟出来3、但是问题是#xff0c;A5S上面的API函数的工作是如何的#xff0c;我一直没怎么弄清…最近在搞单片机和A5S的SPI通信 1、A5S是跑的是ITRON的系统、有自己相关的SPI API函数2、单片机这边也是可以熟悉了发送接收什么的我都可以自模拟出来3、但是问题是A5S上面的API函数的工作是如何的我一直没怎么弄清楚4、一般的SPI通信不都是主机提供时钟信号吗可是我用A5S发送数据的时候用示波器量时钟引脚并没有看到有方波5、不知所解呀最后发现在CSDN上发帖子发完之后总是不记得自己有发过而且不知道在哪里找回来最后面自己搜索出来了http://bbs.csdn.net/topics/390437622?page1#post-394425594//今天在我的系统上验证了那几个API函数、发关的时候我用示波器去查看MOSI引脚发现有输出、这让我感到非常的高兴然后再用示波器去测了一下SCL引脚发现SCL引脚竟然是低电平一点反应都没有查了一下资料有些资料上写着SPI发送的时候应该会进行如下几个步骤、 1、首先初始化一些什么寄存器呀设置是发送多少位什么的还有设置是低位先发送还是高位先发送 2、然后把数据填写到发送的buffer里面去 3、发送buffer里面的数据把数据一位一位的移到MOSI上面去、实际上就是一个移位寄存器的原理 4、发送完成 后面我再测了一下EN脚发现EN脚一直都是高电平、不过这里可以理解可以理解成高电平使能发送 还有我用串口打印了一下发送的那个API函数返回的值是0说明是这个函数已经成功执行了。 如果是这样的话那我从机要如何接收呢主机没有发送时钟信号没有时钟信号是如何发送的然后从 机要如何搞真的是太不可理解了 #define MCU_SPI_EN GPIO(91) #define MCU_SPI_MISO GPIO(90) #define MCU_SPI_MOSI GPIO(89) #define MCU_SPI_SCL GPIO(88)#define MCU_SPI_ID 1 #define MCU_SPI_MODE SPI_MODE3 #define MCU_SPI_DFS 0x8 //full-duplex #define MCU_SPI_BAUD_RATE 500000 //500000void rtc_mcu_spi_init(void) {printk(---------rtc_mcu_spi_init--------------\n);#if 0gpio_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);#endifspi2_config(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[2];u16 ID0xAAAA;unsigned char Flag0;//reg[0]0xaa55;//reg[1]0xaa55;//Flagspi2_write(MCU_SPI_ID, reg, 2);Flagspi2_write_read(MCU_SPI_ID, ID, reg ,1, 2);printk(reg[0]-reg[1]:%x, %x\n,reg[0],reg[1]);if(Flag0){printk(a5sspi_write_success----------\n);}else{printk(a5sspi_write_fail-------------\n);} } 之前用示波器查看那四个引脚老是有问题今天借了另一块板子来试了一下才知道原来是我的板子有问题现此对安霸公司说声抱歉你们的系统还是可以用的片选 线没有波形时钟线的数据线有波形、后面我做了如下的修正可以用示波器看到片选信号的波形了#define MCU_SPI_EN GPIO(91) #define MCU_SPI_MISO GPIO(90) #define MCU_SPI_MOSI GPIO(89) #define MCU_SPI_SCL GPIO(88)#define MCU_SPI_ID 0 //spi2_config 对应的是SPI的第二个接口了但是SPI的第二个接口只能接一个SPI从设备所以把这里改为0而不是1#define MCU_SPI_MODE SPI_MODE0 #define MCU_SPI_DFS 0x77 //0x8 //full-duplex #define MCU_SPI_BAUD_RATE 50000 //500000void rtc_mcu_spi_init(void) {printk(---------rtc_mcu_spi_init--------------\n);#if 0gpio_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);#endif//gpio_config(MCU_SPI_EN, GPIO_FUNC_SW_OUTPUT);//gpio_set(MCU_SPI_EN);spi2_config(MCU_SPI_ID, MCU_SPI_MODE, MCU_SPI_DFS, MCU_SPI_BAUD_RATE);//spi_config_ena_pin_polarity(SPI_MASTER2, 1, 0); }void rtc_mcu_spi_handler(int eid) {u16 reg[2];u16 ID0x0AB1;unsigned char Flag1;reg[0]0xaa55;reg[1]0xaa55;//gpio_clr(MCU_SPI_EN);//Flagspi2_write(MCU_SPI_ID, reg, 2);Flagspi2_write_read(MCU_SPI_ID, ID, reg ,1, 2);//gpio_set(MCU_SPI_EN);printk(reg[0]-reg[1]:%x, %x\n,reg[0],reg[1]);if(Flag0){printk(a5sspi_write_success----------\n);}else{printk(a5sspi_write_fail-------------\n);} } 从这图里看出来黄色的线就是SPI的片选使能线我从A5S发送的是write_read的函数这个函数的话是先写再读的所以写和读的中间有一个高电平的脉冲~我又来了今天可恶的灰熊拿下了雷霆不喜欢他是因为他们淘汰了保罗好了不说了说下正事SPI的全双工工作模式这里指的是用一个时钟可以完成发送和接收一起的工作比如8个时钟可以同时进行发送和接收因为发送和接收的引脚是不一样的这里已经进行过验证下面贴出我今天调试出的通信先从A5S发命令到单片机然后单片机判断收到的是不是正确的再回发消息给A5S代码如下单片机部分#ifndef _SPI_ #define _SPI_ //-------------------------------------------------------------- #define Master_SDO_DAT _pa5 //DEFINE SDI PIN #define Master_SDO_DATC _pac5 //DEFINE SDI CONTROL BIT#define Master_SDI_DAT _pa6 //DEFINE SDI PIN #define Master_SDI_DATC _pac6 //DEFINE SDI CONTROL BIT#define Master_SCK _pa7 //DEFINE SDI PIN #define Master_SCKC _pac7 //DEFINE SDI CONTROL BIT#define Master_SPIEN _pb5 //??SPI????????? #define Master_SPIENC _pbc5 //EN????? //--------------------------------------------------------------void SPI_INIT(void);void MCUSPI_WRITE(unsigned char senddat);unsigned char MCUSPI_READE(void);#endif datMCUSPI_READE();if(dat0x7E){MCUSPI_WRITE(0xa9);}else{MCUSPI_WRITE(dat);} void SPI_INIT(void) {//MCU做从机的配置Master_SPIENC1;Master_SDO_DATC0;Master_SDO_DAT0;Master_SDI_DATC1;Master_SCKC1; } void MCUSPI_WRITE(unsigned char senddat) {unsigned char i;if(!Master_SPIEN){for(i0;i8;i){ Master_SDO_DAT senddat0x80;while(Master_SCK);while(!Master_SCK); senddat 1;}} } unsigned char MCUSPI_READE(void) {unsigned char R_Dat;unsigned char i;//循环用到的变量Master_SDO_DAT0;if(0Master_SPIEN){for(i0;i8;i){ //if(0i){ while(!Master_SCK); } R_Dat | Master_SDI_DAT; if(i7){ while(Master_SCK); while(!Master_SCK);} R_Dat 1;//接收数据变量 }}return R_Dat; } A5S部分#define MCU_SPI_EN GPIO(91) #define MCU_SPI_MISO GPIO(90) #define MCU_SPI_MOSI GPIO(89) #define MCU_SPI_SCL GPIO(88)#define MCU_SPI_ID 0 #define MCU_SPI_MODE SPI_MODE0 #define MCU_SPI_DFS 0x77 //0x77//0x8 //full-duplex #define MCU_SPI_BAUD_RATE 50000 //500000void rtc_mcu_spi_init(void) {printk(---------rtc_mcu_spi_init--------------\n);#if 0gpio_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);#endif//gpio_config(MCU_SPI_EN, GPIO_FUNC_SW_OUTPUT);//gpio_set(MCU_SPI_EN);spi2_config(MCU_SPI_ID, MCU_SPI_MODE, MCU_SPI_DFS, MCU_SPI_BAUD_RATE);//spi_config_ena_pin_polarity(SPI_MASTER2, 1, 0); }void rtc_mcu_spi_handler(int eid) {u8 reg;u8 ID0x7E;unsigned char Flag1;Flagspi2_write_read(MCU_SPI_ID, ID, ® ,1, 1);printk(reg[0]-reg[1]:%x,\n,reg);if(Flag0){printk(a5sspi_write_success----------\n);}else{printk(a5sspi_write_fail-------------\n);} } //weiqifartc_mcu_spi_init();app_timer_register(TIMER_1HZ, rtc_mcu_spi_handler);printk(mcu_spi\n);
http://www.huolong8.cn/news/431092/

相关文章:

  • 工程公司网站模板下载wordpress底部自豪采用
  • 网站空间3个g多少钱一台云服务器可以做多个网站
  • 电子商务网站建设与管理实训北京网站设计济南兴田德润评价
  • 网站建设购买模板东城网站制作公司
  • 深圳金鼎网站建设模板网站建设制作
  • 电商型网站建设价格导航网站怎么做点击
  • 上海工程建设安全协会网站做网站的竞品分析
  • 旅发集团网站建设方案关于加强网站建设的情况说明
  • 网站开发费怎么入账wordpress主题离线编辑
  • vs网站开发 百度文库正邦设计广州分公司
  • 怎么给自己的品牌做网站wordpress上下页翻页
  • jsp网站 iis青岛哪家做网站的公司好
  • 广西网站建设泉州台商区建设局网站
  • 提供温州手机网站制作哪家好网站分页符素材
  • 顺的网站建设信息临汾网站建设 吕梁网站建设
  • 湖南长沙网站建设厦门互联网公司排名
  • 盐山县做网站价格湛江制作网站企业
  • 网站前端程序制作开发成都网站设计最加科技
  • 公司网站建设佛山哪家彩票网站怎么做收银
  • 用网盘做网站免费网站建设案例
  • 怎么做考试资料网站wordpress wp admin
  • 做网站和做小程序有什么不同做网站所用的工具
  • 自贡企业网站建设做led视频好的网站
  • 宁夏建设工程招标投标信息网站wordpress 自己做主题
  • wordpress整站手机端嘉定区 网站建设
  • 上海营销型网站建设公司简历制作免费模板下载
  • 重庆微信营销网站wordpress 子站点函数
  • 做网站不会框架广东住房建设厅网站
  • 企业网站建设的定位网页打不开但是微信和qq都可以上
  • 以什么主题做网站好企业为什么要建站