mshd.net
当前位置:首页 >> STM8S UART串口发送程序问题. >>

STM8S UART串口发送程序问题.

UART1_MODE_RX_ENABLE你设定的串口为智能读,不能写,应该选择UART1_MODE_TXRX_ENABLE 或 UART1_MODE_TX_ENABLE

不知道你的uart_SendByte(REV);函数实现是不是等待发送完成才返回的,还是立即返回 如果是立即返回,那么后面的清除完标志之后,发送标志会在发送完成之后置位,然后会再进入中断,至于REV仍然存在数据1,大概是因为没有其它的操作覆盖掉数据。

void CLK_INIT(void) { CLK_CKDIVR = 0x19; /*HSI/8、CPU = 2/2,1M速度*/ CLK_PCKENR1 = 0x04; /*只开启uart1的时钟*/ CLK_PCKENR2 = 0x00; /*打开ADC的时钟*/ } void IO_INIT(void) { PA_CR1 = 0x00; /*推挽输出*/ PA_CR2 = 0x00; /*最大输出为...

先说发送 第一个字节是地址没问题,理论上是不是发送下一字节要根据回应的ACK来决定,但实际实现的时候是直接发送的而不理会其ACK,每发送一个8比特,你要间隔1个比特位供从机向总线上写ACK,然后你再写第二字节数据,同样,空出ACK,然后给出结...

你查看你的mcu手册,有几个可能出现这种问题的地方你查查: 1,你查看下你的mcu是否启用了uart 接收功能。 2,看你的串口助手是否禁用了发送功能。 3,看看你的停止位和校验位是否正确。 4,你用了485芯片吗?485芯片里面有个接收脚位在你接收数...

Calculate the number of lines per page. PrintPreviewDialog pPDlg; build_os='darwin11.4.0d1' build_vendor='apple'Calculate the number of lines per page. PrintPreviewDialog pPDlg; build_os='darwin11.4.0d1' build_vendor='apple'

public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }

程序从Main进入 1、管脚初始化; 2、时钟初始化; 3、配置芯片的UART模块; 4、死循环一直等待; 5、若有串口数据进来,会触发中断函数,执行中断,把接收到的数据取出来,再通过发送函数发送出去;

首先,你看错程序了 你注意到句一最后有个“;”了吗 也就是说 如果UART2_FLAG_TXE为0,就一直执行这条语句,直到UART2_FLAG_TXE为1才跳过这条语句执行句2; 其次, TXE应该是发送数据寄存器为空的 标志位,也就是发送数据寄存器为空的时候为1,不...

_recv = FF;?? 应该是0xFF吧

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com