C8051f系列开发之keil c单步调试

在使用C8051F系列单片机读取ST三轴加速度计数据时遇到全1异常。通过keil C的单步调试发现,执行特定语句后,管脚状态未改变,怀疑硬件问题。检查电路板线路后,发现SDI和SDO错误连接导致信号被拉低。修正硬件连接后,恢复正常通信。附带了采用虚拟SPI总线的lis3lv02dq读取程序。
摘要由CSDN通过智能技术生成

C8051f系列单片机是一种高速,集成度很高的单片机,功能还是蛮强大的。我在用此款单片机读取ST 公司的三轴加速度计的时候发现输出总是全1。于是,我用keil c的单步调试功能。一步一步调试,于是我发现执行到一条把某一管脚置1的语句之后,watch窗口显示的相应管教状态仍是0.


于是我觉得可能是硬件的问题,引脚一直接地被拉低。果然,我在查看电路板的线路时发现sdi和sdo两根线与另外两个引脚相连,而这个连接是我修改版图时无意连接上的。而且一个引脚被配置成高电平,另外一个被配置成低电平。所以sdi和sdo都一直保持低电平和高电平。所以不能对传感器进行正常的配置和读取数据。

另附lis3lv02dq读取程序,采用的是虚拟spi总线。

#include "main.H"
	
unsigned char spi_comm(unsigned char outgoing_byte)
{
    uchar incoming_byte, x;

    acc_spc = 1; //Pull SPI clock high
    for(x = 0 ; x < 8 ; x++)
    {
	    if(outgoing_byte&0x80)
          acc_sdi =1; //Put bit on SPI data bus
	    	else acc_sdi = 0;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值