打印
[技术问答]

【已解决】M058,怎么控制一组IO?

[复制链接]
1898|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
springvirus|  楼主 | 2013-11-20 08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 springvirus 于 2013-11-20 09:12 编辑

昨天用M058S板子让一个LED闪烁了,用ICP烧入程序,还算顺利
51单片机控制一组IO时,可以直接P0 = 0x55,8个LED,间隔亮(低电平点亮),看M051的头文件也定义了P0
但是这样写时,MDK报错: expression must be a modifiable lvalue,看来这样赋值行不通,看到相关宏定义都是位操作,那如何
整体控制呢?

看代码有#define P0                  ((GPIO_T *) P0_BASE)                        /*!< GPIO PORT0 Configuration Struct                        */
所以P0是指针,再看GPIO_T的结构定义中有个DOUT,它的0~7正好pin0~pin7的输出值,这样就对了
可以这样写 P0->DOUT = 0x55; 编译通过,待上板子实验!若没有问题,就可以封装成宏,放入GPIO.H中了
沙发
戈卫东| | 2013-11-20 20:25 | 只看该作者
差不多都是这样吧, 现在很多MCU的寄存器都用这种方式访问.

使用特权

评论回复
板凳
niuyaliang| | 2013-11-22 08:10 | 只看该作者
请问lz,我在官网没有找到M058的库函数说明文档,lz不知道有没有

使用特权

评论回复
地板
springvirus|  楼主 | 2013-11-22 08:38 | 只看该作者
niuyaliang 发表于 2013-11-22 08:10
请问lz,我在官网没有找到M058的库函数说明文档,lz不知道有没有

看看这些资料,另外可以到M0的助学园地看看
NuMicroM051SeriesDriverReferenceGuide.zip (2.03 MB)

M051SeriesBSP_DirectRegisterAccess_v1.01.003.zip (1.04 MB)

M051SeriesBSP_CMSIS_v2.01.002.zip (2.86 MB)

使用特权

评论回复
5
niuyaliang| | 2013-11-23 08:03 | 只看该作者
官方的库确实做得不是很完善,需要自己加

使用特权

评论回复
6
mintspring| | 2014-10-18 22:46 | 只看该作者
入门知识

使用特权

评论回复
7
mintspring| | 2014-10-19 08:19 | 只看该作者
查看技术手册和端口相关的寄存器,一般有输入输出方向寄存器,功能选择寄存器,输出寄存器,输入读取寄存器

使用特权

评论回复
8
从小木丁丁| | 2014-10-19 19:47 | 只看该作者
官方的库不全但是灵活,可以随用随加

使用特权

评论回复
9
chen472015439| | 2016-6-11 16:04 | 只看该作者
正要了解一下,谢谢分享资料

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

4552

帖子

14

粉丝