[技术问答] 【已解决】M058,怎么控制一组IO?

[复制链接]
 楼主| 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, 下载次数: 31)

M051SeriesBSP_DirectRegisterAccess_v1.01.003.zip (1.04 MB, 下载次数: 34)

M051SeriesBSP_CMSIS_v2.01.002.zip (2.86 MB, 下载次数: 38)

niuyaliang 发表于 2013-11-23 08:03 | 显示全部楼层
官方的库确实做得不是很完善,需要自己加
mintspring 发表于 2014-10-18 22:46 来自手机 | 显示全部楼层
入门知识
mintspring 发表于 2014-10-19 08:19 来自手机 | 显示全部楼层
查看技术手册和端口相关的寄存器,一般有输入输出方向寄存器,功能选择寄存器,输出寄存器,输入读取寄存器
从小木丁丁 发表于 2014-10-19 19:47 | 显示全部楼层
官方的库不全但是灵活,可以随用随加
chen472015439 发表于 2016-6-11 16:04 | 显示全部楼层
正要了解一下,谢谢分享资料
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

4596

帖子

14

粉丝
快速回复 在线客服 返回列表 返回顶部