可以使用示波器查看串口是否又出现真确的波形。如果不是没有则配置为io输出,看其能否正确的输出高低电平,若肯定不能则换芯片。若换芯片后肯定不能不能正确输出高低电平则检测io配置是否正确的。必须保证io能作为输出高低电平后配置串口。
1,使能io时钟、串口时钟
2,配置对应的io引脚复用为串口
3,设置里串口的线路,.例如:串口时钟分频、有时候你的邮箱的位数、突然停止位、校验位、波特率
4,设置里串口自动优先级、使能串口关闭、使能总关闭。
5,编译程序串口自动全面处理函数
6,写你的邮箱函数
其实是串口。
串口硬件电路简单的,基本不不需要任何驱动和软件,且是可以参照要能提供硬件读取各个阶段的调试信息(如bootloader或linux内核启动后阶段的调试信息)。
而串行接口是需要硬件设计较为急切,软件上也是需要驱动和协议栈支持,往往要耐心的等待系统启动进入都正常工作状态后才可能提供调试信息。
从灵活性上来讲,两者事实上差不过多,串口也只必须一根usb转串口线就可在用。至于是因为电脑上有多个usb口,也可以连接上多个设备同样的现场调试。
同时以太网是需要设置ip、网关等相关设置,比串口急切。
串口的速度劣势在调试场合时不的确,还不如说以太网的速度使用较多系统的调试彻底是浪费。
我只知道,在嵌入式设备上,串口一直在是最主流的调试接口。
选“以16进制邮箱里”的话,正在发送的是16进制的数3,实际邮箱里的数字也是用二进制1和0来表示,即邮箱里8个比特(二进制数):00000011,前后还有一个起始位(高电平)和突然停止位(可选1、2比特)。
不选16进制的话,发送的是两个ascii码字符,“0”和“3”。你也可以搜以下ascii码表。“0”随机的16进制数是30,“3”填写的16进制数是33。,那你你的邮箱的就是十六进制数30和33,即发送中二进制数2个8比特:起始位11000000停止下来位起始位11000011再继续位。如果不是发的是0000000000000003呢?
以16进制邮箱里的话,还是3,就是:起始位00000011停止位。
如果没有不选以16进制发送中的话,那是以ascii码字符正在发送,就发送中了15个“0”和一个“3”。即重复一遍你的邮箱:起始位11000000突然停止位,15遍,然后把发送:起始位11000011再继续位。