This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP432P401R:GPIO 串行化

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/711400/ccs-msp432p401r-gpio-serialization

器件型号:MSP432P401R

工具/软件:Code Composer Studio

我尝试与使用专有串行通信协议的系统建立通信、但无法使用 MSP432P401R 中提供的任何外设(SPI、I2C、UART 等)

我唯一的可能性是使用 GPIO 来实现它、我已经用8051实现了它、并且我已经成功地附加了我已经使用过的代码、但在 E2E 社区中找不到任何示例来实现与 MSP432类似的功能。

有人可以帮帮我吗?

下面是我已成功使用8051的代码:

发送:

sbit P01 = P0^1;
sbit lsb = B^0;

void main(){
 unsigned char dat = 0x0fh;
 unsigned char i;
 b = dat;
 对于(i = 0;i<8;i++) 
  P01 = lsb;
  b = B>>1;
 }

接收:

sbit P01 = P0^1;
sbit MSB = B^7;

void main()
 unsigned char i;
 b = dat;
 对于(i = 0;i<8;i++) 
  MSB = P01;
  b = B>>1;
 }


提前感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这两个代码是很有 idic 的。

    话虽如此、如果您知道它们的工作原理、那么将它们原样移植到任何 MCU 都是一件很棒的事情。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Danny、

     除非您说明了您认为代码不好的原因、否则第一条评论不有用。  我将在这一点上尝试一下...

    Andrew、

     代码样式的效率有点低、因为它需要的指令多于执行一个简单的任务、即从 GPIO 移入(移出)数据。  (即、您可以跳过"sbit"定义、只需在循环中执行位操作、使代码更易于读取)。

    话虽如此、这看起来就像一个简单的串行协议、没有起始/停止或奇偶校验位。 为什么您认为 UART 无法处理该问题?

    如果您仍然想直接在 MSP432上实施8051代码、我建议查看 TI Resource Explorer 上的 msp432p401x_P1_01寄存器级示例

    -Bob L.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob、您好、感谢您提出的非常有建设性的建议、事实上、我已经尝试过您提出的建议、它的作用是解决问题。

    关于您的问题、为什么我不使用 UART、这是因为串行通信只是协议中一小部分、共享用于其他功能的相同引脚、并且在时序级别非常复杂。

    该系统在使用旧的 C8051F930时可以正常运行多年、但我必须添加需要更复杂处理器的功能、这就是我选择 MSP432的原因。

    再次感谢。

    Andrew