uchar ADC0832() { cs=1; clk=0; cs=0; di=1; clk=1; clk=0; di=1; clk=1; clk=0; di=0; clk=1; clk=0; di=1; for(i=0;i<8;i++) { clk=1; clk=0; num=num<<1; num|=(uchar)di; } cs=1; return num; } if(num<=38) wendu=num-69; if(num>38&&num<=70) wendu=num-70; if(num>70) wendu=num-71; 这个公式是什么意思
1、中断服务程序指定工作寄存器后无法执行中断,按下按键无反应,但是去掉using 1和using 2 后,按下中断按键就可以执行中断了 2、还有,中断的优先级如果优先了外中断1,在外中断1打断外中断0中断,执行完中断1后执行中断0,却没有现象出现,流水灯不动,然后几秒后返回主函数了。 请各位指点下,程序在附件里面 1.中断系统.zip 2020-11-29 22:51 上传点击文件名下载附件64.13 KB 下载次数: 0
初始化函数 void SSD2828_Init(void) { SSD2828_QSPI_Init(); //Packet Write Configuration SSD2828_Write_REG(0xB80x0000); //VC(Virtual ChannelID) Control Register SSD2828_Write_REG(0xB90x0000); //PLL Disable //PLL Configure //FR: bit15~14 //00 ?62.5 < OUT f < 125 //01 ?126 < OUT f < 250 //10 ?251 < OUT f < 500 //11 ?501 < OUT f < 1000 SSD2828_Write_REG(0x00BA0xC050); //Fout = Fin * 0x14 / 1 = 10M * 80 /1 = 800M SSD2828_Write_REG(0x00BB0x0009); //LP(Low Power) Clock = Fout /10/8 = 10M SSD2828_Write_REG(0x00B90x0001); //PLL ENABLE HAL_Delay(100); //RGB Input Interface Control SSD2828_Write_REG(0x00B1(SSD2828_VSYNC<<8)+SSD2828_HSYNC); SSD2828_Write_REG(0x00B2(SSD2828_VBP<<8)+SSD2828_HBP); SSD2828_Write_REG(0x00B3(SSD2828_VFP<<8)+SSD2828_HFP); SSD2828_Write_REG(0x00B4SSD2828_WIDTH); SSD2828_Write_REG(0x00B5SSD2828_HEIGHT); SSD2828_Write_REG(0x00B60x0003); //HSVSPCLK=0 Bit[1:0]=11=24bpp //Delay Timeing //SSD2828_Write_REG(0x00C40x0001); //Enable BTA SSD2828_Write_REG(0xC90x2302); //p1: HS-Data-zero p2: HS-Data- prepare --> 8031 issue HAL_Delay(5); SSD2828_Write_REG(0xCA0x2302); SSD2828_Write_REG(0xCB0x0510); SSD2828_Write_REG(0xCC0x1005); //0x100A????0A???? HAL_Delay(5); SSD2828_Write_REG(0xD00x0000); //HS TX Timer=0?????=0x0010 //MIPI Lane Configure //00 - 1 lane mode //01 - 2 lane mode //10 - 3 lane mode //11 - 4 lane mode SSD2828_Write_REG(0xDE0x0003); //2 Data Lane11=4LANE 10=3LANE 01=2LANE 00=1LANE SSD2828_Write_REG(0xD60x0005); //Bit[7:2]:Send X(now=1) Packet in Blanking Period Bit[0]:1=R.G.B/0=B.G.R SSD2828_Write_REG(0xB70x024B); //0x024B选择TX_CLK作为MIPI时钟0x026B选择RGB的PCLK作为MIPI时钟 HAL_Delay(100); } 读取ID函数 void SPI5_READ_ID(void) { SSD2828_Write_REG(0xd4 0x00FA); printf("2828 ID: 0x%x\n"SPI_READ()); }
比如一个0805贴片元件焊盘上打一个0.3mm的过孔有没有问题,因为板子很小布线收到限制是否可以利用这种方法减少板子面积
ST的L6230芯片官方说适合用来驱动PMSM和BLDC,1种是永磁同步电机,1种是无刷直流电机。那适合用来驱动步进电机和舵机吗,和L298N一样吗。
想自己开发otp单片机程序,但是这个单片机要怎么调试,是不是烧写一次芯片就报废了,还是有其它办法,比如我用合泰单片机怎么开发
播种检测程序求大神给指导一下给个大体的方案 在播种机的排种管装有光电传感器检测播种种子下落状态,如果漏播则光电传感器检测处无种子下落,产生报警信号光、电提醒;并记录播种数、漏播数。 报警信号产生传输给后续装置,后续装置接收报警信号后驱动步进电机转动。
我用labview做了一个上位机波形显示的界面,用串口助手与labview通信时,数据可以正常收发,用单片机与串口助手通信时,数据也可以正常收发,但是当单片机与labview通信时,labview的数据无法给到单片机,请问是什么原因?
实验 : 8个独立按键,在数码上显示8个数字。帮我看一下,有什么问题,按键后数字显示不了 /@@***************************************************************************** 独立按键,数码管循环显示,0--8 P0口控制数码管,P1口按键 *****************************************************************************/ #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar led_code[]={0xc00xf90xa40xb00x990x920x820xf80x800x90}; //共阳数码管段码 void delay(uint ms) { uint i; while(ms--) { for(i=0;i<120;i++); } } void main(viod) { uchar key; P0=0xff; P1=0xff; while(1) { if(P1!=0xff) //等待按键被按下 { delay(200); if(P1!=0xff) { key=P1; switch(key) { case 0xfe: P0=led_code[1]; break; case 0xfd: P0=led_code[2]; break; case 0xfb: P0=led_code[3]; break; case 0xf7: P0=led_code[4]; break; case 0xef: P0=led_code[5]; break; case 0xdf: P0=led_code[6]; break; case 0xbf: P0=led_code[7]; break; case 0x7f: P0=led_code[8]; break; } } } } }
请问普中开发板A2的矩阵键盘和蜂鸣器是共用了P1.5,有什么方法能同时使用他们吗
mmexport1606101941242.jpg (55.41 KB 下载次数: 0) 下载附件 保存到相册 2020-11-23 11:29 上传