求助大神,把51程序移植到STM32上,很简单的测试程序

求助大神,把51程序移植到STM32上,很简单的测试程序,第1张

#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))

#define GPIOA_ODR_Addr(GPIOA_BASE+12) //0x4001080C

#define GPIOB_ODR_Addr(GPIOB_BASE+12) //0x40010C0C

#define GPIOC_ODR_Addr(GPIOC_BASE+12) //0x4001100C

#define GPIOD_ODR_Addr(GPIOD_BASE+12) //0x4001140C

#define GPIOE_ODR_Addr(GPIOE_BASE+12) //0x4001180C

#define GPIOF_ODR_Addr(GPIOF_BASE+12) //0x40011A0C

#define GPIOG_ODR_Addr(GPIOG_BASE+12) //0x40011E0C

#define GPIOA_IDR_Addr(GPIOA_BASE+8) //0x40010808

#define GPIOB_IDR_Addr(GPIOB_BASE+8) //0x40010C08

#define GPIOC_IDR_Addr(GPIOC_BASE+8) //0x40011008

#define GPIOD_IDR_Addr(GPIOD_BASE+8) //0x40011408

#define GPIOE_IDR_Addr(GPIOE_BASE+8) //0x40011808

#define GPIOF_IDR_Addr(GPIOF_BASE+8) //0x40011A08

#define GPIOG_IDR_Addr(GPIOG_BASE+8) //0x40011E08

#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) //输入

可以像51一样进行位 *** 作

您好,单片机可以实现对方波频率、占空比的检测。做这个东西你得从以下方面入手:

1、首先测出方波的频率(这个跟占空比无关),利用这个计算出周期T;

2、利用一个独立的外部中断,在测量完频率后启动。

(1)先开启中断,并设置为上升边沿触发;

(2)方波从低电平跳变到高电平后,中断触发后,将其设置为下降边沿触发,同时启动定时器;

(3)第二次触发中断后,停止计时,两次中断之间的间隔修正补偿后,就是高电平的持续时间Tu。

占空比可以计算出来,就是q=Tu/T*100%,

然后就显示即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10958501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存