-
联合体该如何设置某一位
联合体如下: union SFLAG { struct { uint8_t b0 : 1; uint8_t b1 : 1; uint8_t b2 : 1; uint8_t b3 : 1; uint8_t b4 : 1; uint8_t b5 : 1; uint8_t b6 : 1; uint8_t b7 : 1; uint8_t b8 : 1; uint8_t b9 : 1; uint8_t b10 : 1; uint8_t b11 : 1; uint8_t b12 : 1; uint8_t b13 : 1; uint8_t b14 : 1; uint8_t b15 : 1; } bits; uint16_t bytes; }; union SFLAG Sflag = {0}; 现在想设置b0 位的值,该如何写代码,试用 Sflag.bytes &=0x01; 怎么不对呢??? 请高手帮助解决,谢谢!!
1165浏览量 2回复量 关注量 -
GD32F4xxDemo_Suites中的 IAR工程的.icf文件可用ST的代替吗?
GD32F4xxDemo_Suites中的 IAR工程的.icf文件在哪里可以找到?可用ST的代替吗?
2862浏览量 19回复量 关注量 -
关于TRF7970a读7位uid问题 sos
在做TRF7970a的读卡号的程序,现在读M1卡这类4位卡号没有问题。(没有用放冲突的程序,因为用作定位不能出现读出多张卡的情况。)现在问题是我读NTAG213这个卡的卡号是7位的,读出来的还是4位 。程序发送的参数: buf[0] = TRF7970_COMMAND + RESET; //¸´Î» 0x8F; buf[1] = TRF7970_COMMAND + TRANSMIT_NO_CRC; //´«ËͲ»´øCRC 0x90; buf[2] = TRF7970_WRITE_CONTINUED + TX_LENGTH_BYTE_1; //Á¬Ðøд buf[3] = 0x00; //1D¼Ä´æÆ÷ÄÚÈÝ buf[4] = 0x20; //1E¼Ä´æÆ÷ÄÚÈÝ buf[5] = 0x93; //1F¼Ä´æÆ÷ÄÚÈÝ buf[6] = 0x20; // Trf797xRawWrite(&buf[0], 7);
4893浏览量 0回复量 关注量 -
XC32对于const数组编译问题
typedef struct { unsigned char Ind[2]; char Mss[32]; }typFNT_GB16; const typFNT_GB16 tfont16[]={ "深",0x00,0x00,0x27,0xFC,0x14,0x04,0x14,0xA4,0x81,0x10,0x42,0x08,0x40,0x40,0x10,0x40, 0x17,0xFC,0x20,0x40,0xE0,0xE0,0x21,0x50,0x22,0x48,0x2C,0x46,0x20,0x40,0x00,0x40,/*0*/ }; 上面这个数组,XC16编译器可以编译通过。没有问题。 XC32编译器编译不能通过。 开发环境 MPLAB X IDE 5.45. XC32: 2.50 使用harmony3. XC32提示如下: In file included from ../src/myCode/lcd/gui.c:4:0: ../src/myCode/lcd/font.h:217:5: error: missing braces around initializer [-Werror=missing-braces] {"??",0x00,0x00,0x27,0xFC,0x14,0x04,0x14,0xA4,0x81,0x10,0x42,0x08,0x40,0x40,0x10,0x40, nbproject/Makefile-default.mk:370: recipe for target 'build/default/production/_ext/1784247729/gui.o' failed ^ make[2]: Leaving directory 'D:/1111/FWS/KEY5/KEY5_LCD/V6_PIC32MZ/CODE/PIC32_H/firmware/PIC32MZ.X' ../src/myCode/lcd/font.h:217:5: error: (near initialization for 'tfont16[0].Msk') [-Werror=missing-braces] cc1.exe: all warnings being treated as errors nbproject/Makefile-default.mk:91: recipe for target '.build-conf' failed make[2]: *** [build/default/production/_ext/1784247729/gui.o] Error 255 make[1]: Leaving directory 'D:/1111/FWS/KEY5/KEY5_LCD/V6_PIC32MZ/CODE/PIC32_H/firmware/PIC32MZ.X' make[1]: *** [.build-conf] Error 2 nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed make: *** [.build-impl] Error 2 BUILD FAILED (exit value 2, total time: 6s) 百度了一下,error: missing braces around initializer 加了大括号。 const typFNT_GB16 tfont16[]={ {"深",0x00,0x00,0x27,0xFC,0x14,0x04,0x14,0xA4,0x81,0x10,0x42,0x08,0x40,0x40,0x10,0x40, 0x17,0xFC,0x20,0x40,0xE0,0xE0,0x21,0x50,0x22,0x48,0x2C,0x46,0x20,0x40,0x00,0x40,/*0*/ } }; 还是不行,编译不通过。 哪位大神可以指导一下,这是什么原因啊?
1380浏览量 1回复量 关注量 -
华大UID如何读取
如何读取华大HC32L13X系列的UID? 如下读取代码,执行就挂了... [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px]#define MCU_UID_ADDR_S 0x00100E74[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px] uint8_t i = 0;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px] uint8_t data[10] = {0};[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px] /* read */[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px] for(i = 0; i < 10; i++) {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px] data[i] = *(unsigned char *)(MCU_UID_ADDR_S + i);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(222, 240, 251)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color]
2808浏览量 11回复量 关注量 -
lcd1602滚动显示
[color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]#include
[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]typedef unsigned char uint8;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]typedef unsigned int uint16;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]sbit rs=P2^6;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]sbit rw=P2^5;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]sbit e=P2^7;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]uint8 a[16]="perchin designed";[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]uint8 b[27]="welcome to the world of mcu";[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]void delay(uint16 i) //1us[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]{[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] while(i--);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]}[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]void wrc(uint8 c)[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]{[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] delay(1000);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] rs=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] rw=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] P0=c;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=1;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] delay(10);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] /*[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] P0=c<<4;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=1;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=0;*/ //四位的LCD要加上[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]}[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]void wrd(uint8 dat)[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]{[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] delay(1000);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] rs=1;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] rw=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] P0=dat;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=1;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] delay(10);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=0;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] /*[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] P0=dat<<4;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=1;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] e=0;*/ //四位的LCD要加上[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] rs=0; [/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]}[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]void init()[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]{[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] delay(1000);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] /*wrc(0x32); [/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x28);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x28); */ //四位的LCD要加上[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x38);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x38);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x38); [/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x0c); [/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x01); [/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]}[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]void display()[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px]{[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] uint8 i;[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrc(0x00+0x80);[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] for(i=0;i<16;i++)[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] {[/size][/font][/backcolor][/color] [color=#4c4c4c][backcolor=rgb(255, 255, 255)][font="][size=16px] wrd(a[/size][/font][/backcolor][/color][color=rgb(76, 76, 76)][backcolor=rgb(255, 255, 255)][font="][size=16px]); } wrc(0x40+0x80); for(i=0;i<27;i++) { wrd(b); } wrc(0x07); //每写一个数据屏幕就要右移一位,就相对于数据来说就是左移了; while(1) { wrc(0x00+0x80); for(i=0;i<16;i++) { wrd(a); delay(30000); //如果不加这条延时语句的话滚动会非常快。 } } } void main() { init(); while(1) { display(); } } 请问下面这条语句怎样实现滚动 while(1) { wrc(0x00+0x80); for(i=0;i<16;i++) { wrd(a); delay(30000); //如果不加这条延时语句的话滚动会非常快。 } } [/size][/font][/backcolor][/color] 2103浏览量 1回复量 关注量 -
DS18B20 请各位大佬帮忙看一下哪里不正确,
void delay_us(uint count)//进入一次该函数需要11.95us { while(count--); //执行一次cout-- 需要6.5us } //即delay_us(2)的延时时间为6.5*2+11.95 void delay_ms(uint y) { uint x; for(;y>0;y--) { for(x=110;x>0;x--); } } uchar DS18B20Init(void) //send reset and initialization command { uchar i=0; DS=0; delay_us(82);//复位,至少延时480us,挂在总线上的DS18B20将被复位 DS=1;//释放总线, i=0; while(DS)//延时等待82us { delay_ms(1); i++; if(i>5) { return 0;//初始化失败 } } return 1;//初始化成功 } void writebyte(uchar byte) //write a byte to ds18b20 { uchar j; for(j=0;j<8;j++) { DS=0;//每次写入一个数据之前需要把总线拉低 _nop_();//15us内要释放总线,产生写时序 DS=byte&0x01;//写入字节从最低位开始 delay_us(10);//延时不少于60us,不可以大于120us DS=1;//释放总线,准备下一次数据写入 byte>>=1; } } uchar readbyte(void) //读字节 { uchar i,j,byte; for(i=0;i<8;i++) { DS=0; _nop_(); _nop_();//延时至少1us,产生读时序 DS=1; delay_us(1);//释放总线 j=DS;//数据采集, delay_us(10);//延时不少于60us byte=(j<<7)|(byte>>1); delay_us(6); } return byte; } void main() { int i,temp; uchar L,H; while(1) { DS18B20Init();//初始化 delay_ms(1); writebyte(0xcc); // address all drivers on bus,发送跳跃ROM指令 writebyte(0x44); // initiates a single temperature conversion,发送温度转换指令 DS18B20Init();//主机和DS18B20做任何通讯前需要对其初始化 delay_ms(1); writebyte(0xcc);//发送跳跃ROM writebyte(0xbe);//读取DS18B20暂存器值 L=readbyte();//读低俗暂存器的值 H=readbyte();//读高速暂存器的值 i=H; i<<=8;//H移到高8位 i|=L;//L写入i的低字节 if(i<0) { i=i-1; temp=~i; } else { temp=i; } i=temp*0.0625*10000 ;//浮点型数据转换 Display(i); } }
1021浏览量 3回复量 关注量 -
关于UI界面passive不显示曲线的问题 sos
[align=left][size=14px]我根据dev.ti.com上的指导改动master添加了boost_aoa天线板后,按原来的master+passive+slave进行排布实验。发现此时master可以连续的输出slave的测量角度,但此时的passive却一直没有数据输出。具体演示情况如下:[/size][/align][align=left][size=14px][color=rgb(170, 102, 102)][img]https://e2echina.ti.com/resized-image/__size/1230x0/__key/communityserver-discussions-components-files/103/3343.1.jpg[/img][/color][/size][/align][align=left][size=14px]我换了空旷环境进行试验,发现还是没有任何关于passive的数据信息,即没有输出角度,logs一栏也没有passive的日志信息。[/size][/align][align=left][size=14px]我后来更换了master,即使用原来不带天线、未修改电容的master,发现passive有角度信息输出,但每次时间都很短,输出一会数据就结束了,远没有master输出持续时间长。具体显示情况如下:[/size][/align][align=left][size=14px][color=rgb(170, 102, 102)][img]https://e2echina.ti.com/resized-image/__size/1230x0/__key/communityserver-discussions-components-files/103/8463.2.jpg[/img][/color][/size][/align][align=left][size=14px]本次实验都是在空旷环境下进行的,确定干扰较小,所以为什么会出现passive输出数据时间短的问题,甚至没有数据输出的问题,还请Ti相关的工作人员为我解答,万分感谢![/size][/align] [list] [*][color=#555555][/color] [/list]
5914浏览量 0回复量 关注量 -
M3做UDP接收数据问题 sos
项目要求多个设备进行网络通信,之前没接触过网络通信,用M3 UIP协议写了UDP通信,接收正常,当开机大概十分钟或网络报文过多就会出现不能正常接收数据,因为设备较多,网络内每秒大概有20~30个报文,报文大概20字节左右!我是直接通过uip_appdata指针获取数据!是不是用后需要清除缓存,发送没问题就接收数据不对! RecDat = (struct DatRec *)uip_appdata; if(.............) {........}发送正确的条件,一开始能正常进入if语句,时间长了就进不去了,看了,数据发的没错! uip_send(&SendDat, sizeof(SendDat)); 应用层接收发送大概就用这两函数!求大神解救啊啊啊!找不到原因啊!
744浏览量 0回复量 关注量 -
请问NUC980到底应该是用BUILDROOT开发还是用BSP开发?
请问NUC980到底应该是用BUILDROOT开发还是用BSP开发? 感觉文档有点前后不一致啊。
1098浏览量 2回复量 关注量