问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - TE
  • GD32F303问题

    [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]问题背景是这样的:[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]配置了一个20Khz的定时器溢出中断,System_cnt_add()函数是对一个变量++,就是创建了一个时间基准。然后在Task_time_slice_function()函数里面实现了一个led每0.5s翻转的任务。[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]于是遇到了这样一个问题:[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]当我把这个Task_time_slice_function()函数放在中断的时候,led能够正常实现每0.5s翻转的操作,也就是输出一个1Hz的方波。但是当我把Task_time_slice_function()函数放在main函数的while循环里面时,功能就失效了,变成输出32Hz的方波。有没有人知道怎么回事,希望能指点一下,谢谢![/size][/font][/backcolor][/color][font=Tahoma, Microsoft Yahei, Simsun][color=#444444][size=16px] [/size][/color][/font][color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]这是用到的几个函数[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]int main(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Systemclock_config();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] nvic_config();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] gpio_config();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] spi2_config();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] timer_config();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] System_cnt_init();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] while(1)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Task_time_slice_function();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]/* time0 20kHz*/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]void TIMER0_UP_IRQHandler(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{ [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] if(SET == timer_interrupt_flag_get(TIMER0, TIMER_INT_UP))[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] System_cnt_add();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]void Task_time_slice_function(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] /* 1ms */[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] if(_abs(systemclock_data.systemclock_cnt - systemclock_data.systemclock_lastcnt_1ms) >= systemclock_data.systemclock_cnt_1ms)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] systemclock_data.systemclock_lastcnt_1ms = systemclock_data.systemclock_cnt;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] led_main();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] /* 10ms */[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] if(_abs(systemclock_data.systemclock_cnt - systemclock_data.systemclock_lastcnt_10ms) >= systemclock_data.systemclock_cnt_10ms)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] systemclock_data.systemclock_lastcnt_10ms = systemclock_data.systemclock_cnt;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] /* 100ms */[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] if(_abs(systemclock_data.systemclock_cnt - systemclock_data.systemclock_lastcnt_100ms) >= systemclock_data.systemclock_cnt_100ms)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] systemclock_data.systemclock_lastcnt_100ms = systemclock_data.systemclock_cnt;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] /* 1000ms */[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] if(_abs(systemclock_data.systemclock_cnt - systemclock_data.systemclock_lastcnt_1000ms) >= systemclock_data.systemclock_cnt_1000ms)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] systemclock_data.systemclock_lastcnt_1000ms = systemclock_data.systemclock_cnt;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color]

    TE GD32F303 ST sy System syste

    1615浏览量 3回复量 关注量
  • m0518,spi怎么连外设 sos

    求救大佬,新唐m0518,spi怎么读写一个字节, 我这样不行, u1_t hwspi_ReadWriteByte(u1_t TxData) { uint8_t Data = 0; SPI_WRITE_TX(SPI0,TxData); while(SPI_IS_BUSY(SPI0)); SPI_TRIGGER(SPI0); Data = SPI_READ_RX(SPI0); return Data; }

    spi M0518 TE AD WRITE

    3664浏览量 0回复量 关注量
  • 请问盗版PROTEL99还会收到律师函吗?

    PROTEL99是不是已经不卖了,就想用用PROTEL99,为何还会收到律师函?

    protel PROTEL99 TE Prote

    5792浏览量 22回复量 关注量
  • stm32l476移植鸿蒙系统求助

    [i=s] 本帖最后由 walker2048 于 2020-12-15 10:17 编辑 [/i] [align=left][align=left]本人菜**一只,尝试着移植鸿蒙2.0系统到stm32l476rg_nucleo开发板。现在碰到一些问题,想问下论坛里的大佬是否可以给点提示,非常感谢。[/align][align=left]环境配置描述:[/align][align=left]目前已完成至设置好clang+gcc工具链(最后ld时使用arm-none-eabi-gcc)配置,编译参数根据cubeMX生成的makefile文件修改好了。该工具链与编译参数使用在cubeMX生成的标准程序里可正常运行(点灯OK,延时500毫秒OK,printf重定向串口输出OK)。[/align][align=left]---------------------------[/align][align=left]参数设置如下[/align][align=left]defines = -DUSE_HAL_DRIVER -DSTM32L476xx[/align][align=left]asmflags = -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard[/align][align=left]# -fshort-enums -target arm-none-eabi 这两个参数是clang用的[/align][align=left]cflags = -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fshort-enums -target arm-none-eabi -fPIC[/align][align=left]cflags_c = -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2[/align][align=left]ldflags = -T ../../vendor/st/board/stm32l476rg/STM32L476RGTx_FLASH.ld -lc -lm -lnosys -specs=nano.specs -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2[/align][align=left]---------------------------[/align][align=left]问题描述如下,mcu的时钟定义设置为最高速80M,在cubeMX生成的标准程序里(不管是gcc编译或者clang编译),SystemCoreClock可顺利更新为80M,程序正常。但是在移植到鸿蒙的代码中,HAL库无法更新SystemCoreClock变量,不管是如何修改cubeMX的时钟定义(降频改配置,修改UART2时钟信号源),均无法正常运行点灯与串口输出功能,HAL_Delay功能也出错。目前判断是只要使用到SystemCoreClock变量的,都会出错。自己在单步调试中将SystemCoreClock变量赋值为80M,也无法正常运行程序。[/align][align=left]--------------------------[/align][align=left]想求助一下论坛里的大佬,是否能帮忙看一下到底是什么地方有问题。[/align][align=left]源码地址附上:https://gitee.com/walker2048/hmos_iot,请切换到clang_stm32分支。[/align][align=left]编译时需要LLVM,arm-none-eabi-gcc,gn,ninja工具,以及python3.7以上环境。Debug时需要Openocd和arm-none-eabi-gdb。[/align][align=left]编译命令为python build.py stm32l476rg_nucleo(在源码根目录执行)。[/align][align=left]如果大家懒得搭编译环境,可以使用我创建好的Docker镜像(arm-none-eabi-gcc工具链需要自行下载配置)[/align][align=left]镜像运行命令:docker run -it --name build -v "D:/hmos_iot":"/mnt" walker2048/hm_build:slim_iot[/align][/align]

    鸿蒙系统 移植 STM32L476 TE IO

    11739浏览量 12回复量 关注量
  • CC2640R2F在ccs中烧写工程失败求帮助!

    利用CCS对CC2640R2F板子在烧写官方给的simplelink_cc2640r2_sdk_3_40_00_10中的rtls_slave的工程时,总是失败,且给的失败原因是: Cortex_M3_0: Can't Run Target CPU: (Error -2134 [url=home.php?mod=space&uid=72445]@[/url] 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 8.2.0.00004) Cortex_M3_0: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 8.2.0.00004) Cortex_M3_0: Unable to determine target status after 20 attempts Cortex_M3_0: Failed to remove the debug state from the target before disconnecting. There may still be breakpoint op-codes embedded in program memory. It is recommended that you reset the emulator before you connect and reload your program before you continue debugging Cortex_M3_0: Failed to write data to temporary buffer in RAM before programming device FLASH memory. addr=0x20000C00, writeLength=4096(0x1000), bufIdx=0 Error: Could not write 0x20000C00: target is not connected Cortex_M3_0: File Loader: Memory write failed: Failed to write data to temporary buffer in RAM before programming device FLASH memory. Cortex_M3_0: GEL: File: E:\workspace_v9\rtls_slave_cc2640r2lp_app\FlashROM_StackLibrary\rtls_slave_cc2640r2lp_app.out: Load failed. 应该怎么解决,有没有人可以帮忙解决一下

    ccs CC2640R2F 烧写 TE TI

    6868浏览量 1回复量 关注量
  • AOA 多设备连接问题

    有一下几个问题请教一下: 1.按照BLE5.1中关于AOA的方式,应该有两种模式,一种是广播模式,一种是连接模式。请问现在的例程里是连接模式的吗? 2.实际测试,当发完RTLS_CMD_CONNECT指令之后,需要等待5-10秒的时间,才会回复连接成功。这个比蓝牙连接的时间要的多。 [18:25:34.652]发→◇FE 09 00 39 03 00 8D 07 75 03 EE 04 90 01 B4 □ [18:25:34.704]收←◆FE 01 00 79 03 00 7B [18:25:34.790]收←◆FE 1B 00 59 02 00 00 68 AE BA 08 20 03 07 00 00 07 FF FF FF FF 1F 97 06 3D 00 8D 07 75 03 EE 04 B2 [18:25:40.282]收←◆FE 03 00 59 03 00 00 00 59 3.我们现在测试,同时连接6台设备的情况下,并让设备一直输出IQ数据,过一段时间之后蓝牙设备会死机。实测2台设备的情况下不会。这个有可能是哪个方便原因。python相应的配置如下: connect_interval_mSec = 500 rtlsUtil.aoa_start(cte_length=20, cte_interval=0)

    TE interval NEC RTL 蓝牙

    16003浏览量 2回复量 关注量
  • 关于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]

    Passive ui ST TE maste

    5652浏览量 0回复量 关注量
  • 有偿请教关于18F66k22串口假死问题。

    [i=s] 本帖最后由 taijing33 于 2020-11-16 15:17 编辑 [/i] 问题描述:使用了串口1和2,接受都是中断高优先级,发送没用中断。串口1连接的485设备,实际外部没用连接使用。串口2通过232连接的串口屏。问题出在串口2上。现在的问题是客户反应屏幕不能设置,显示正常,经判断就是串口2不能进入接受中断了,但是发送是正常的,就是假死了、。网上百度了有关信息。程序中也做了帧错误和数据溢出处理。我在办公室连续测了2天,各种乱按摔打,。就是不能重现客户遇到的问题。很是郁闷。但是客户反应的真真切切。以前在程序操作内部ee的时候关闭了中断,串口屏操作稍快就会,造成串口假死,但是我现在已经处理了。本以为解决了这个问题,没想到 到客户哪里,还是有这种情况。这种情况在客户哪里 也是几天有可能出现。但是一定会出现。 串口屏操作一次发给单片机的数据 一般不超过20个。 我的串口2接受处理逻辑。 大体意思是 串口有数据中断时,赋值Comdelay =2;一股脑的吧所有数据都接受进数组 Usart1_rbuff[100];数据一直有的话 Comdelay一直等于2; 然后再定时器中断中Comdelay --;定时器是10ms进一次中断。当Comdelay ==0认为没有数据了,这时候在接收到的数据中 找出 振头和帧尾 并进行CRC运算确认数据的正确。 下面是代码: 串口2和1的初始化代码 void config_uart1(void) { PMD1bits.RTCCMD = 1; TRISCbits.TRISC7 = 1; TRISCbits.TRISC6 = 0; TXSTA1bits.TXEN = 1; PIE1bits.TX1IE=0; //????TX PIE1bits.RC1IE=1; //RX //INITIALIZING EUART, 9 bits, 9600 baud rate PIR1bits.TX1IF = 0; //Clear EUSART Transmit Interrupt Flag bit PIR1bits.RC1IF = 0; //Clear EUSART Receive Interrupt Flag bit TXSTA1 = 0x24; //Synchronous mode:Selects 9-bit transmission, High speed BRGH=1, Transmit enabled RCSTA1 = 0x90; //Synchronous mode:Selects 9-bit reception, Continuous Receive Enable, //Serial port enabled(configures RX/DT and TX/CK pins as serial port pins) // SPBRG1 = BAUD9600; //11.0592MHz, BRGH=1, 9600bps SPBRG1 = 51; //8MHz, BRGH=1, 9600bps ODCON1 = 0; ODCON2 = 0; ODCON3 = 0; PIE1 = 0x20; //Peripheral interrupt disable PIE2 = 0; //Peripheral interrupt disable PIE3 = 0x20; //enable RC2IE/TX2IE/RTCCIE PIE4 = 0; //enable RC2IE/TX2IE/RTCCIE PIE5 = 0; //enable RC2IE/TX2IE/RTCCIE PIE6 = 0; //enable RC2IE/TX2IE/RTCCIE IPR1 = 0x20; //All peripheral interrupt /time interrupt low priority IPR2 = 0; //All peripheral interrupt /time interrupt low priority IPR3 = 0x20; //All peripheral interrupt /time interrupt low priority IPR4 = 0; //All peripheral interrupt /time interrupt low priority IPR5 = 0; //All peripheral interrupt /time interrupt low priority IPR6 = 0; //All peripheral interrupt /time interrupt low priority IPR1bits.RC1IP = 1; MAX485_EN = 0; } void config_uart2(void) { //??2 // PMD3=0xff; //外设模块禁止 // PMD2=0xff;//外设模块禁止 // PMD1=0x78;//外设模块禁止 // PMD0=0xc0;//外设模块禁止 //EECON2 = 0x55; //EECON2 = 0xaa; PMD1bits.RTCCMD = 1; TRISGbits.TRISG2 = 1; TRISGbits.TRISG1 = 0; TXSTA2bits.TXEN = 1; PIE3bits.TX2IE=0; //??TX //INITIALIZING EUART, 9 bits, 9600 baud rate PIR3bits.TX2IF = 0; //Clear EUSART Transmit Interrupt Flag bit PIR3bits.RC2IF = 0; //Clear EUSART Receive Interrupt Flag bit TXSTA2 = 0x24; //Synchronous mode:Selects 9-bit transmission, High speed BRGH=1, Transmit enabled RCSTA2 = 0x90; //Synchronous mode:Selects 9-bit reception, Continuous Receive Enable, //Serial port enabled(configures RX/DT and TX/CK pins as serial port pins) // SPBRG2 = BAUD9600; //11.0592MHz, BRGH=1, 9600bps SPBRG2 = 51; //8MHz, BRGH=1, 9600bps ODCON1 = 0; ODCON2 = 0; ODCON3 = 0; PIE1 = 0x20; //Peripheral interrupt disable PIE2 = 0; //Peripheral interrupt disable PIE3 = 0x20; //enable RC2IE/TX2IE/RTCCIE PIE4 = 0; //enable RC2IE/TX2IE/RTCCIE PIE5 = 0; //enable RC2IE/TX2IE/RTCCIE PIE6 = 0; //enable RC2IE/TX2IE/RTCCIE IPR1 = 0x20; //All peripheral interrupt /time interrupt low priority IPR2 = 0; //All peripheral interrupt /time interrupt low priority IPR3 = 0x20; //All peripheral interrupt /time interrupt low priority IPR4 = 0; //All peripheral interrupt /time interrupt low priority IPR5 = 0; //All peripheral interrupt /time interrupt low priority IPR6 = 0; //All peripheral interrupt /time interrupt low priority MAX485_EN2 = 0; } 中断中的数据接受处理 void interrupt my_isr(void){ static u8 rdata = 0; if(PIR3bits.RC2IF &&PIE3bits.RC2IE ) { rdata = RCREG2; if(Rx_en && RxCounter1 < USART1_R_LEN) { Usart1_rbuff[RxCounter1++] = RCREG2; if(RxCounter1>=USART1_R_LEN) { Rx_en = 0; Usart1_r_finish = 1; } } Comdelay = 2; //20ms????????????????? } if(PIR1bits.RC1IF &&PIE1bits.RC1IE) { rdata = RCREG; if(Rx_en0 && RxCounter < USART_R_LEN) { Usart_rbuff[RxCounter++] = RCREG; if(RxCounter>=USART_R_LEN) { Usart_r_finish = 1; //RxCounter = 0; //Rx_en0 = 0; } } Comdelay0 = 2; //20ms????????????????? } //下面这部分代码是以前别的功能忘了删除了,但是我觉得应该没有对串口假死有影响。 //下面这部分代码是以前别的功能忘了删除了,但是我觉得应该没有对串口假死有影响。 //下面这部分代码是以前别的功能忘了删除了,但是我觉得应该没有对串口假死有影响。 if(INTCONbits.INT0IF) { INTCONbits.INT0IF = 0; // if(WATER) { // Water_pulse = 0; if(dat_set_water.water_chicken <= 65534) dat_set_water.water_chicken+=1; } } } 主程序while1中的串口接受数据处理 //当发生帧错误或者溢出时,初始化串口 if(RCSTA2bits.OERR || RCSTA2bits.FERR) { RCSTA2bits.CREN = 0; config_uart2(); } if(RCSTA1bits.OERR || RCSTA1bits.FERR) { RCSTA1bits.CREN = 0; config_uart1(); } if(Usart1_r_finish) // { Rx_en = 0; //暂时拒绝接受新数据 Usart1_r_finish = 0; com_pro(); //处理数据 RxCounter1 = 0; for(i=0;i

    串口 TE interrupt inter ip

    736浏览量 3回复量 关注量
  • msp430f5529 进不了定时器中断

    程序如下,但是进不了中断,有谁知道可以告诉我么? char buffer[255]; int flag = 0,cont = 0; char data[3]= {'0','0','\0'}; uint8_t data1 = 0; uint16_t intialWheelValue = 0; uint16_t wheelValue = 0; FRESULT WriteFile(char* fileName, char* text, WORD size); void TimerB_Init(void); void DataAcq() { char data[3]= {'0','0','\0'}; uint8_t data1 = 0; uint16_t intialWheelValue = 0; uint16_t wheelValue = 0; TimerB_Init(); Dogs102x6_init(); Dogs102x6_clearScreen(); Buttons_interruptEnable(BUTTON_ALL); //按键中断使能 buttonsPressed = 0; intialWheelValue = Wheel_getValue(); // 得到初始齿轮电位计采样值 __enable_interrupt(); //使能全局中断 while(!(buttonsPressed & BUTTON_S2)){ Dogs102x6_stringDraw(3, 45, &data[0], DOGS102x6_DRAW_INVERT); //显示数 wheelValue = Wheel_getValue(); data1 = wheelValue/68; //得到当前齿轮电位计采样值 if (intialWheelValue != wheelValue){ //若当前齿轮电位计采样值与初始齿轮电位计采样值不同,进行小时重置 if (data1 < 10){ data[0] = '0'; data[1] = '0' + data1; } else if (data1 < 20){ data[0] = '1'; data[1] = '0' + (data1 - 10); } else if (data1 < 30){ data[0] = '2'; data[1] = '0' + (data1 - 20); } else if (data1 < 40){ data[0] = '3'; data[1] = '0' + (data1 - 30); } else if (data1 < 50){ data[0] = '4'; data[1] = '0' + (data1 - 40); } else if (data1 < 60){ data[0] = '5'; data[1] = '0' + (data1 - 50); } else { data[0] = '6'; data[1] = '0'; } } } } FRESULT WriteFile(char* fileName, char* text, WORD size) { // Result code FRESULT rc; // File system object FATFS fatfs; // File object FIL fil; UINT bw; // Register volume work area (never fails) f_mount(0, &fatfs); // Open file rc = f_open(&fil, fileName, FA_READ | FA_WRITE | FA_OPEN_ALWAYS); if (rc) { die(rc); } //指针指到文本最后 rc = f_lseek(&fil, f_size(&fil)); if(rc) { die(rc); } // Write to file rc = f_write(&fil, text, size, &bw); if (rc) { die(rc); } // Close the file rc = f_close(&fil); if (rc) { die(rc); } return rc; } /*定时器初始化*/ void TimerB_Init(void) { TB0CCR0 = 32768; TB0CTL = TBSSEL_0+TBCLR+MC_1; // TB0CCTL0 = CCIE; } #pragma vector = TIMERB0_VECTOR __interrupt void Timer_B0(void) { cont = cont+1; if(cont == 1) { cont = 0; flag = 1; buffer[0] = '['; buffer[1] = data[0]; buffer[2] = data[1]; buffer[3] = ']'; WriteFile("1.txt",buffer,4); //写入数据 } }

    MSP430F5529 定时器中断 TE rc se

    567浏览量 1回复量 关注量
  • 急用,关于程序下载问题 sos

    使用的为F28027的开发板,现在在做一个外部中断的下程序,但是程序怎么就下载不进去,尝试新建了几个新的工程都不行,而原先的工程却可以正常下载。 我个人也写过不少C2000的程序,都从来没遇到过这样的问题。 所出现的提示为:wideinterrupt.out could not open file. 最近就要验收了,求指教。

    IDE tc TE top inter

    471浏览量 0回复量 关注量
  • 请问win7系统下怎样搭建开发环境

    我现在用的是win7,64位系统,芯片用的是16F1507,用MPLAB_IDE 8.92挂接HI-TECH PICC9.83,编译不成功,提示:Halting build on first failure as requested.是不是这个版本太旧了,请问各位我应该怎样搭建开发环境啊?谢谢!

    win7系统 TE FAILURE RS

    864浏览量 5回复量 关注量
  • 新手51单片机流水灯程序问题请教

    [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]#include[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]#include [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]void delay(void) [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] {[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] unsigned int i,j,k; [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] for(i=20;i>0;i--) [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] for(j=20;j>0;j--)[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] for(k=248;k>0;k--);[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] }[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] void main() [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] {[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] int temp;[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] temp=0x01;[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] while(1)[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] {[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] P1=~temp;[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] delay();[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] P1=0xff;[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] temp=temp<<1;[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] if (temp==0x00)[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] temp=0x01;[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] }[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] [/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px] }[/size][/font][/backcolor][/color] [color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]想要用[/size][/font][/backcolor][/color][color=rgb(65, 131, 196)][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]单片机[/size][/font][/backcolor][/color][color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]左位移[/size][/font][/backcolor][/color][color=rgb(210, 34, 34)][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]指令[/size][/font][/backcolor][/color][color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]实现流水灯,程序正确,调试也显示正确,在[/size][/font][/backcolor][/color][color=rgb(65, 131, 196)][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]单片[/size][/font][/backcolor][/color][color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]机上运行了一遍也是可以实现,问题在于,当第八个[/size][/font][/backcolor][/color][color=rgb(65, 131, 196)][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]LED[/size][/font][/backcolor][/color][color=#333333][backcolor=rgb(255, 255, 255)][font=微软雅黑][size=16px]熄灭后,要等很长时间后第一个LED才会重新亮起,[/size][/font][/backcolor][/color]

    51单片机 流水灯程序 TE FOR include

    874浏览量 8回复量 关注量
  • 这是怎么回事?

    使Intermedia GUI无法用set system config来设置,当选中PHY的PRM Flag栏和/或MAC的Default ARQ Enable栏时,Apply时提示“Unable to set the System Configure Status Code = Invalid Parameter”,这是怎么回事?

    TE ST System BLE SystemC

    509浏览量 3回复量 关注量
  • 不管送什么数进去,8个LED都一起灭

    利用串口专家向单片机发个数,单片机根据这个数决定哪个LED灯亮。 void interrupt0()interrupt 4 using 1 { i=SBUF; LED=i; } main() { EA=1; ES=1; SCON=0x70; PCON=0; TMOD=0x20; TH1=220; TL1=220; TCON=0x40; } 波特率设定9600,现在的问题是不管送什么数进去,8个LED都一起灭?

    LED interrupt TE inter 单片机

    755浏览量 18回复量 关注量
  • 航顺单片机用什么仿真比较好。

    proteus,还是什么软件,里面是否有航顺的单片机?

    仿真 单片机 Proteus 软件 TE

    972浏览量 4回复量 关注量
12345下一页