历史上的今天
返回首页

历史上的今天

今天是:2024年09月22日(星期日)

正在发生

2018年09月22日 | STM32IO及定时器映射到地址

2018-09-22 来源:eefocus

意义:    有时候我们在操作多个STM32 IO 时,硬件设计未必有规律,比如输出引脚是:PB3,PC4,PC5,PD0,但是操作这些引脚具有共性,或者说我们想用 for(it i = 0; i < 4; i++) 像操作数组一样操作这些引脚,程序将变得非常简洁,这时候把 IO 映射到地址就可以实现该目的。

方法: 

1.//位带操作,实现51类似的GPIO控制功能

//具体实现思想,参考《CM3权威指南》第五章(87~92页),M4同M3类似,只是寄存器地址变了

//IO口操作宏定义

#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) 

//IO口地址映射

#define GPIOA_ODR_Addr    (GPIOA_BASE+20) //0x40020014

#define GPIOB_ODR_Addr    (GPIOB_BASE+20) //0x40020414 

#define GPIOC_ODR_Addr    (GPIOC_BASE+20) //0x40020814 

#define GPIOD_ODR_Addr    (GPIOD_BASE+20) //0x40020C14 

#define GPIOE_ODR_Addr    (GPIOE_BASE+20) //0x40021014 

#define GPIOF_ODR_Addr    (GPIOF_BASE+20) //0x40021414    

#define GPIOG_ODR_Addr    (GPIOG_BASE+20) //0x40021814   

#define GPIOH_ODR_Addr    (GPIOH_BASE+20) //0x40021C14    

#define GPIOI_ODR_Addr    (GPIOI_BASE+20) //0x40022014     

#define GPIOA_IDR_Addr    (GPIOA_BASE+16) //0x40020010 

#define GPIOB_IDR_Addr    (GPIOB_BASE+16) //0x40020410 

#define GPIOC_IDR_Addr    (GPIOC_BASE+16) //0x40020810 

#define GPIOD_IDR_Addr    (GPIOD_BASE+16) //0x40020C10 

#define GPIOE_IDR_Addr    (GPIOE_BASE+16) //0x40021010 

#define GPIOF_IDR_Addr    (GPIOF_BASE+16) //0x40021410 

#define GPIOG_IDR_Addr    (GPIOG_BASE+16) //0x40021810 

#define GPIOH_IDR_Addr    (GPIOH_BASE+16) //0x40021C10 

#define GPIOI_IDR_Addr    (GPIOI_BASE+16) //0x40022010 

 

2. 输出:u32  val = BITBAND(GPIOB_ODR_Addr, 3);   把val打印出来即可(输入是:GPIOB_IDR_Addr)

PB3,PC4,PC5,PD0依次对应:0x4240828c、0x42410290、0x42410294、0x42418280

3. 操作:

   uint32_t  PinTest[4] = {0x4240828c, 0x42410290, 0x42410294, 0x42418280};

   *((vu32 *)(PinTest[idx])) = 1;       *((vu32 *)(PinTest[idx])) = 0;

4. 输入操作类似

5. 定时器相关:

   u32 val =  (u32)&(TIM3->CCR3);     // TIM_Pluse

   u32 val =  (u32)&(TIM3->ARR);       // TIM_Period


推荐阅读

史海拾趣

Brite-Led Optoelectronics Inc公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。Brite-Led深知这一点,始终将品质放在首位。公司建立了严格的质量管理体系,从原材料采购到生产过程中的每一个环节都进行严格把控。同时,公司还投入大量资源用于产品质量检测和改进,确保每一件产品都能达到客户的高标准要求。正是这种对品质的执着追求,使得Brite-Led在市场上赢得了良好的口碑和信誉。

Fortiming Corporation公司的发展小趣事

背景:在电子行业,优质的客户服务是建立品牌忠诚度和口碑的关键。

发展:Fortiming始终将客户放在首位,致力于为客户提供全方位的优质服务。公司建立了完善的售后服务体系,确保客户在使用过程中遇到任何问题都能得到及时解决。同时,Fortiming还通过举办技术交流会、提供定制化解决方案等方式,加深与客户的合作关系,提升品牌形象。这些努力使得Fortiming在客户心中树立了良好的品牌形象,为公司的长期发展奠定了坚实基础。

请注意,以上故事是基于Fortiming Corporation作为电子行业中晶振供应商的一般发展路径和趋势进行构想的,具体细节可能因实际情况而有所不同。

Gore公司的发展小趣事
在电路中增加辅助电路,如中点电位平衡电路,通过调节电路中的电流或电压来平衡中点电位。
Hi-Tron Semiconductor Corp公司的发展小趣事
通过改进控制算法,如采用中点电位平衡控制策略,实时监测并调整中点电位,使其保持在合理范围内。
博通集成(BEKEN)公司的发展小趣事

随着公司规模的扩大和市场需求的增长,博通集成开始实施国际化战略,积极拓展海外市场。公司在全球范围内设立了多个子公司和技术分部,以便更好地服务全球客户。通过国际化战略和全球布局,博通集成不仅提升了企业的国际竞争力,还为全球用户提供了更加优质的产品和服务。

这些故事展示了博通集成在电子行业中的发展历程和成就。通过不断的技术创新、市场拓展、战略合作和国际化战略的实施,博通集成逐渐发展成为无线连接芯片设计领域的领军企业。未来,随着无线通讯技术的不断发展和应用领域的不断拓展,博通集成将继续保持创新精神和市场敏锐度,推动企业的持续发展。

ERGOBAHCO公司的发展小趣事

在快速发展的同时,ERGOBAHCO公司始终不忘履行社会责任和推动可持续发展。公司积极参与社会公益事业,捐款捐物支持贫困地区的教育、医疗等事业。同时,ERGOBAHCO公司还注重环保和节能减排工作,通过引进先进的环保技术和设备,实现了生产过程的绿色化、低碳化。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

全国大学生电子设计竞赛历年试题

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 全国大学生电子设计竞赛历年试题  …

查看全部问答>

自己组装生产摄像机优势在哪?

本人从事安防行业5年,一路走来,一直在做监控摄像机这一块,发现自己组装生产摄像机,有以下几大优势,供大家参考: 第一:摄像机本身组装很简单,技术含量不高,不如自己动手,还学会了组装,与摄像机内部结构。 第二:自己组装生产摄像机,价格 ...…

查看全部问答>

3D报纸引领阅读潮流 成本与内容成制约发展瓶颈

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 自2009年年底起,3D在国内成为了“时尚”的代名词,继3D电影《阿凡达》、《爱丽丝梦游仙境》在中国市场赚得盆满钵满,3D似乎也成为了报刊企业的又一掘金点。   2010年4月16日,湖北《十堰晚 ...…

查看全部问答>

关于开发CDMA的通信模块!

先祝各位达人元旦快乐! 我老板现在想开发CDMA的通信模块,就是网上很多卖的那种,可以通过串口或其他通用接口进行CDMA无线通信,但我查了很长时间仍然没有头绪……望各位达人指点一二: 用于开发CDMA模块一般都有什么芯片?我看网上大部分都是高 ...…

查看全部问答>

请教关于Powerpc文件系统的问题

Powerpc现在编译的文件系统是jff2格式,用串口线先传倒powerpc的RAM里,再复制进flash,但是现在文件系统似乎限制了大小,如果传3M左右就能正常启动,如果大于4M就不能正常启动,系统会不停重启。但是如果系统能正常启动后,用FTP上传文件,则没有 ...…

查看全部问答>

workbench!!

之前用的是vxworks+Tornado开发方式,一切比较顺利!! 最近单位买了最新版的vxworks,开发环境是workbench,刚接触,本打算先做启动软盘尝试启动vxworks,可发现每次编译后,目标机出现v1.6++++++++++++++++++然后又重起,尝试了各种方法,都是这样,请各位 ...…

查看全部问答>

小弟碰到个很奇怪的问题

S3C44B0X那块板子,能在线调试并且LCD显示正常,但是将程序烧录进去后,却发现LCD没有显示了。这是怎么回事呢?有哪位大虾遇到过同样的问题吗? 做LED实验却不管在线调试还是将程序烧录进去,都能得到正确的结果。…

查看全部问答>

【芯币兑换】AVR ATmega16学习板标准原理图

下面是最终版原理图,请大家参考 …

查看全部问答>

有湖北的吗?今年怎么还不出设备清单??

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 都12号了,还不出设备清单,往年都有的,武大咋搞的!!!  …

查看全部问答>