
//IO口操作宏定义 define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))define MEM_ADDR(addr) ((volatile unsigned long )(addr))define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))//IO口地址映射 define GPIOA_ODR_Addr (GPIOA_BASE+20) //0x40020014define GPIOB_ODR_Addr (GPIOB_BASE+20) //0x40020414define GPIOC_ODR_Addr (GPIOC_BASE+20) //0x40020814define GPIOD_ODR_Addr (GPIOD_BASE+20) //0x40020C14define GPIOE_ODR_Addr (GPIOE_BASE+20) //0x40021014define GPIOF_ODR_Addr (GPIOF_BASE+20) //0x40021414define GPIOG_ODR_Addr (GPIOG_BASE+20) //0x40021814define GPIOH_ODR_Addr (GPIOH_BASE+20) //0x40021C14define GPIOI_ODR_Addr (GPIOI_BASE+20) //0x40022014define GPIOA_IDR_Addr (GPIOA_BASE+16) //0x40020010define GPIOB_IDR_Addr (GPIOB_BASE+16) //0x40020410define GPIOC_IDR_Addr (GPIOC_BASE+16) //0x40020810define GPIOD_IDR_Addr (GPIOD_BASE+16) //0x40020C10define GPIOE_IDR_Addr (GPIOE_BASE+16) //0x40021010define GPIOF_IDR_Addr (GPIOF_BASE+16) //0x40021410define GPIOG_IDR_Addr (GPIOG_BASE+16) //0x40021810define GPIOH_IDR_Addr (GPIOH_BASE+16) //0x40021C10define GPIOI_IDR_Addr (GPIOI_BASE+16) //0x40022010//IO口操作,只对单一的IO口! //确保n的值小于16! define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //输出define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //输入define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //输出define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //输入define PCout(n) BIT_ADDR(GPIOC_ODR_Addr,n) //输出define PCin(n) BIT_ADDR(GPIOC_IDR_Addr,n) //输入define PDout(n) BIT_ADDR(GPIOD_ODR_Addr,n) //输出define PDin(n) BIT_ADDR(GPIOD_IDR_Addr,n) //输入define PEout(n) BIT_ADDR(GPIOE_ODR_Addr,n) //输出define PEin(n) BIT_ADDR(GPIOE_IDR_Addr,n) //输入define PFout(n) BIT_ADDR(GPIOF_ODR_Addr,n) //输出define PFin(n) BIT_ADDR(GPIOF_IDR_Addr,n) //输入define PGout(n) BIT_ADDR(GPIOG_ODR_Addr,n) //输出define PGin(n) BIT_ADDR(GPIOG_IDR_Addr,n) //输入define PHout(n) BIT_ADDR(GPIOH_ODR_Addr,n) //输出define PHin(n) BIT_ADDR(GPIOH_IDR_Addr,n) //输入define PIout(n) BIT_ADDR(GPIOI_ODR_Addr,n) //输出define PIin(n) BIT_ADDR(GPIOI_IDR_Addr,n) //输入 |
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H750使用FMC
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
我想实现三对移相PWM(占空比为50%)输出,前两对是互补输出,用了TIM1的CH1/CH1N和CH2/CH2N。第三对用了TIM1的CH3和TIM8的CH2,类似于互补输出。需要以TIM1的CH1/CH1N为参考,其余两对怎样实现占空比不变,相移可调呢?另外TIM8的CH1和CH3的PWM需要输出高电平
STM32H723 TIM1输出三相50%的占空比,TIM_CH3的输出上升沿略比TIM_CH1和TIM_CH2超前,这是哪里配置有问题吗
stm32h7 用pb3、pb4、pb5、pa15做spi3后,mx组态时debug里选择serial wire,程序里加了禁用jtag,spi3口不能工作
MCSDK不能启动电机?
STM32H745启动与烧录问题
stm32H7 LTDC控制器 CLUT模式寄存器配置
STM32H750B-DK 板载STLINK 无程序
带操作单元。
不过,尽管没有这个位带操作单元,但并不影响我们对内存或寄存器进行位操作。自行编写代码即可。
比方STM32的库里就有相关函数 或宏可以使用。
#define SET_BIT(REG, BIT) ((REG) |= (BIT))
#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
#define READ_BIT(REG, BIT) ((REG) & (BIT))
#define CLEAR_REG(REG) ((REG) = (0x0))
#define WRITE_REG(REG, VAL) ((REG) = (VAL))
#define READ_REG(REG) ((REG))
对于GPIO指定管脚的操作,有HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)可以使用。