-
stm32cubemx中freertosV10.0.1与cmsis_v2配合是否有问题 sos
在cmsis_os2.c中有:#if defined(SysTick) /* FreeRTOS tick timer interrupt handler prototype */ extern void [color=#f00000]xPortSysTickHandler [/color](void); /* SysTick handler implementation that also clears overflow flag. */ void SysTick_Handler (void) { /* Clear overflow flag */ SysTick->CTRL; /* Call tick handler */ xPortSysTickHandler(); } #endif /* SysTick */ 在FreeRTOSConfig.h有[color=#f00000]#define xPortSysTickHandler SysTick_Handler[/color] 在port.c void xPortSysTickHandler( void ) { /* The SysTick runs at the lowest interrupt priority, so when this interrupt executes all interrupts must be unmasked. There is therefore no need to save and then restore the interrupt mask value as its value is already known. */ portDISABLE_INTERRUPTS(); { /* Increment the RTOS tick. */ if( xTaskIncrementTick() != pdFALSE ) { /* A context switch is required. Context switching is performed in the PendSV interrupt. Pend the PendSV interrupt. */ portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; } } portENABLE_INTERRUPTS(); }
1838浏览量 0回复量 关注量 -
GD32F105进入深度睡眠后,RTC中断不能正常运行。 sos
[i=s] 本帖最后由 地瓜土豆 于 2021-6-1 15:28 编辑 [/i] GD32F105进入深度睡眠后,RTC中断不能正常运行。常规模式下是可以产生中断的。我想深度睡眠之后定时唤醒,但是深度睡眠之后,RTC中断不能相应。一直都在深度睡眠模式,退不出来。求大佬解惑。谢谢!以下是我的代码。void rtc_conf(void) { nvic_irq_enable(RTC_IRQn,1,4); //中断优先级 rcu_periph_clock_enable(RCU_BKPI); //开启时钟 后备寄存器 rcu_periph_clock_enable(RCU_PMU); pmu_backup_write_enable(); //允许访问 后备寄存器 bkp_deinit(); //反初始化 //rcu_osci_on(RCU_LXTAL); //rcu_osci_stab_wait(RCU_LXTAL); //rcu_rtc_clock_config(RCU_RTCSRC_LXTAL); rcu_osci_on(RCU_IRC40K); //使能低速慢时钟 rcu_osci_stab_wait(RCU_IRC40K);//等待低速慢时钟稳定 rcu_rtc_clock_config(RCU_RTCSRC_IRC40K); //选择低速慢时钟源 rcu_periph_clock_enable(RCU_RTC); //使能RTC rtc_register_sync_wait(); //等待RTC寄存器同步 rtc_lwoff_wait(); //等待RTC寄存器上的最后一次写入操作完成 rtc_interrupt_enable(RTC_INT_SECOND); //使能 秒中断 rtc_lwoff_wait(); //等待RTC寄存器上的最后一次写入操作完成 rtc_prescaler_set(32767); rtc_lwoff_wait(); } void RTC_IRQHandler(void) { if(rtc_flag_get(RTC_FLAG_SECOND) != RESET) { Rtc_Time.s++; SleepS_Rtc++; rtc_flag_clear(RTC_FLAG_SECOND); } } void Sleep_Wdog(long sleep_s) { float car_v=0; SleepS_Rtc=0; Rtc_Time.s=0; while(SleepS_Rtc
2095浏览量 0回复量 关注量 -
结构体按位对齐后的赋值
[i=s] 本帖最后由 slf123123 于 2021-4-19 09:13 编辑 [/i] [p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]typedef unsigned long DWORD;[/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]#pragma pack(push) #pragma pack(1) typedef struct si { DWORD a:4; DWORD b:7; DWORD c:3; DWORD d:1; [/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="] DWORD e:3; DWORD f:14; }si; #pragma pack(pop) [/font][/backcolor][/color][/p] [p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="] 如上所示这个结构体对齐后是四个字节[/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]然后[/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]uint8 buff[4];[/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]怎么将buff赋值给整个结构体[/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]struct si su={buff[0],buff[1],buff[2],buff[3]};[/font][/backcolor][/color][/p][p=24, null, left][color=rgb(34, 34, 38)][backcolor=rgb(255, 255, 255)][font="]这样赋值不行吗[/font][/backcolor][/color][/p]
3589浏览量 14回复量 关注量 -
SC95F8517模拟 IIC无应答
#define IIC_SDA P16 #define IIC_SCL P15 #define READ_SDA P1CON &= 0xbf #define SDA_OUT() P1CON |= 0x40,P1PH |=0x40 #define SDA_IN() P1CON &= 0xbf,P1PH |=0x40 #define ADDR_PLF2105D 0x50 void delay_us( uint us) { uint x; for(x=us;x>0;x--); } void delay_ms(u16 nms) { u32 i; for(i=0;i
250) { IIC_Stop(); return 1; } } IIC_SCL=0;//时钟输出0 return 0; } //产生ACK应答 void IIC_Ack(void) { IIC_SCL=0; SDA_OUT(); IIC_SDA=0; delay_us(6); IIC_SCL=1; delay_us(6); IIC_SCL=0; } //不产生ACK应答 void IIC_NAck(void) { IIC_SCL=0; SDA_OUT(); IIC_SDA=1; delay_us(6); IIC_SCL=1; delay_us(6); IIC_SCL=0; } //IIC发送一个字节 //返回从机有无应答 //1,有应答 //0,无应答 void IIC_Send_Byte(uchar txd) { uchar t; SDA_OUT(); IIC_SCL=0;//拉低时钟开始数据传输 for(t=0;t<8;t++) { IIC_SDA=(txd&0x80)>>7; txd<<=1; delay_us(6); //对TEA5767这三个延时都是必须的 IIC_SCL=1; delay_us(6); IIC_SCL=0; delay_us(6); } } //读1个字节,ack=1时,发送ACK,ack=0,发送nACK uchar IIC_Read_Byte(uchar ack) { unsigned char i,receive=0; SDA_IN();//SDA设置为输入 for(i=0;i<8;i++ ) { IIC_SCL=0; delay_us(32); IIC_SCL=1; receive<<=1; if(READ_SDA)receive++; delay_us(16); } if (!ack) IIC_NAck();//发送nACK else IIC_Ack(); //发送ACK return receive; } //IIC连续写 //addr:器件地址 //reg:寄存器地址 //len:写入长度 //buf:数据区 //返回值:0,正常 // 其他,错误代码 uchar IIC_Write_Len(uchar addr,uchar len,uchar *buf) { uchar i; IIC_Start(); IIC_Send_Byte((addr<<1)|0);//发送器件地址+写命令 if(IIC_Wait_Ack()) //等待应答 { IIC_Stop(); return 1; } for(i=0;i 1804浏览量 2回复量 关注量 -
关于PIC KIT3.5 不能脱机下载 dsPIC33E 系列 问题
可以正常连接电脑对 dsPIC33EP系列 下载,编程, 但是不可以脱下载 点击 Programmer To Go PICkit3/PICkit4 Main Project 输出窗口显示以下信息 ***************************************************** Connecting to MPLAB PICkit 3... PICkit 3 is not in programmer-to-go any more. Currently loaded firmware on PICkit 3 Firmware Suite Version.....01.56.07 Firmware type..............dsPIC33F/24F/24H The Programmer To Go operation is not currently supported for the selected device ([color=rgb(46, 48, 51)][backcolor=rgb(255, 255, 255)][font=Arial, "]当前所选设备不支持)[/font][/backcolor][/color]
1665浏览量 1回复量 关注量 -
HK32F030 可以用keil 通过SWD下载吗 sos
HK32F030 可以用keil 通过SWD下载吗 芯片怎么选 是选stm 还是有 HK 的 我试过 cks 下不了呢
1469浏览量 0回复量 关注量 -
求助:AC7801X芯片I2C通信主机端收到的是从机的NACK
[i=s] 本帖最后由 fanchenxinok 于 2021-2-22 09:56 编辑 [/i] 芯片用的Autochip的AC78013 MCU,现在MCU配置为从机模式,主机是安卓系统的。MCU和安卓系统I2C通信。我从机端参考代码是:ac7801xSampleCode20200729\ac7801xSampleCode20200729\i2c\SampleCode\5 I2C_Slave_DMA\I2C_Slave\User下的i2c.c。目前主机和从机通信是没问题的 主机发送的命令我从机都能收到, 但是主机那边发送完命令却没收到从机的ACK,会报错。请问是我从机这边配置有问题吗?配置都是直接从参考代码复制过来的。 void UTILS_I2cInit(I2C_Type *pI2cInst, I2C_ModeType mode, uint16_t slaveAddr) { I2C_ConfigType i2cConfig; /*清零结构体变量.*/ memset(&i2cConfig, 0x00, sizeof(i2cConfig)); /*无论是主机还是从机模式都需要配置的参数.*/ i2cConfig.mode = mode;/*设置主从机模式.*/ i2cConfig.extAddrEn = DISABLE;/*10bit扩展地址禁能.*/ i2cConfig.dmaRxEn = DISABLE;/*设置DMA接收数据.*/ i2cConfig.dmaTxEn = DISABLE;/*设置DMA发送数据.*/ i2cConfig.interruptEn = DISABLE;/*I2C中断,BND/SAMF/ARBLOST.*/ i2cConfig.nackInterruptEn = DISABLE;/*NACK中断.*/ i2cConfig.ssInterruptEn = DISABLE;/*总线start或stop中断.*/ i2cConfig.i2cEn = ENABLE;/*使能模块.*/ i2cConfig.callBack = NULL;/*中断回调函数.*/ /*主机模式需要配置的参数,配置成从机模式可忽略.*/ /* Fscl = Fbclk / (((SAMPLE_CNT_DIV+1) * (STEP_CNT_DIV+1))*2) */ i2cConfig.masterConfig.sampleCnt = 4;/*设置波特率为100Kbps,bandrate=(24M/(5*6*2))=400Kbps.*/ i2cConfig.masterConfig.stepCnt = 5; i2cConfig.masterConfig.ARBEn = ENABLE;/*设置主机仲裁功能.*/ i2cConfig.masterConfig.SYNCEn = ENABLE;/*设置主机SCL同步功能.*/ /*从机模式需要配置的参数,配置成主机模式可忽略.*/ i2cConfig.slaveConfig.slaveAddr = slaveAddr;/*从机地址.*/ i2cConfig.slaveConfig.slaveRangeAddr = 0;/*从机范围地址.*/ i2cConfig.slaveConfig.glitchFilterCnt= 0;/*毛刺过滤.*/ i2cConfig.slaveConfig.stretchEn = ENABLE;/*从机SCL延伸功能.*/ i2cConfig.slaveConfig.rangeAddrEn = DISABLE;/*禁能范围地址.*/ i2cConfig.slaveConfig.monitorEn = DISABLE;/*禁能从机监测功能.*/ i2cConfig.slaveConfig.generalCallEn = DISABLE;/*从机SCL广播地址.*/ i2cConfig.slaveConfig.wakeupEn = DISABLE;/*唤醒功能,仅从机时有效.*/ i2cConfig.slaveConfig.rxOFInterruptEn = DISABLE;/*接收缓存溢出中断.*/ i2cConfig.slaveConfig.txUFInterruptEn = DISABLE;/*发送缓存溢出中断.*/ I2C_Init(pI2cInst, &i2cConfig); } 有大神可以指导下吗
1838浏览量 1回复量 关注量 -
2设备能通过4g直接传输数据吗?
[i=s] 本帖最后由 liyue12 于 2021-1-16 14:40 编辑 [/i] 本人通信小白,想请教下,目前有2个设备,请问它们之间能直接通过4g模块(我用的华为ME909s)传数据吗?2个设备运行socket程序,因为电信网关NAT模式是对称NAT,不支持内网穿透,是否发送端一定要把数据发到以太网上的服务器,然后接收端从服务器读数据。 如果不经过以太网,通过4g网能收发数据吗,好像有个核心网的概念,数据能通过核心网传输吗?这样的话程序要怎么写呢?2者之间发的是图片,数据量比较大。 或者有什么办法实现设备之间传数据,它们不在一个局域网内。
3193浏览量 2回复量 关注量 -
dsPIC33CK256MP508在线仿真出错
能够正常烧录程序,调试时,出现如下错误,是什么情况。Fatal error: 0xc04 The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding. The most common causes for this failure are oscillator and/or PGC/PGD settings.
4102浏览量 8回复量 关注量 -
【求助】I2S接口示例
请问 - GD32 ARM Cortex-M4 Microcontroller ,这款MCU ,与SPI复用的接口包括I2S,引脚为I2S_CKINI/MCK/CK/WS/ADD_SD/SD,请问有详细资料(参考原理,demo例程)嘛,资料好少哦
1086浏览量 1回复量 关注量 -
STM32F107的HOST驱动USB键盘的问题
现在实现了STM32F107 USB HOST读取键盘的数据,但是USB键盘的大小切换键CAPS LOCK和NUM LOCK键的指示灯却不对应的亮灭。查资料说是,需要HOST给USB键盘发送数据,请问是怎么发送呢?
3882浏览量 33回复量 关注量 -
有大神做过这个方面嘛?
用的中颖的79F166A单片机做的电动自行车的面板,目前LCD显示数据通讯都已经完全正常了,但是之前一直用在线编程模式,其中TMS,TCK,TDI,TDO这几个端口和LCD的引脚共用,所以现在想通过串口烧写程序,有大神做过这个方面嘛?求指导
782浏览量 15回复量 关注量 -
函数返回值是多少?
uint32 Systick_Config (uint32 ticks ) { if ( (ticks-1UL) >0xFFFFFFUL) { return 1UL; } return 0UL; } 疑问,当ticks的值为0时,函数返回值是多少?
1829浏览量 31回复量 关注量