我正在为学校项目编写自定义Raspberry Pi UART模块,我认为我的模块与默认的UART驱动程序有些冲突。每次我使用fwrite向ttyAMA0写入内容时,它返回的值等于我写入的数据的长度,即使我的模块的写入函数总是返回零。此外,当我使用mknod创建一个新的ttyAMA1文件并尝试写入它时,我的模块响应,但也返回数据的长度。 那么,我的问题是如何禁用默认的RPI UART驱动程序/模块?
模块和测试应用程序代码(仅传输功能): https://github.com/mixr26/sppurv-projekat
非常感谢任何帮助!
答案 0 :(得分:0)
我找到了解决问题的办法。在raspi-config中禁用串行接口会禁用Raspbian驱动程序(AMBA-PL011),但也会禁用UART引脚(GPIO14和GPIO15),这就是为什么我的模块无法工作的原因。我必须通过更改模块中的GPFSEL寄存器来手动设置UART引脚的功能。之后,我可以安全地调用request_mem_region()和register_irq(),而不会出现任何错误。 – Mihailo