是要自己写驱动模块吗,还是已经写好了呢,串口2中断怎么没有,用cat查看也没有数据
离线
启动log里面看看有没有使能 ttyS2
离线
启动log里面看看有没有使能 ttyS2
关于ttyS2只看到这句,请问这代表?
离线
echo test >/dev/ttyS2
然后看有没有中断?
离线
echo test >/dev/ttyS2
然后看有没有中断?
没有什么反应
离线
echo test >/dev/ttyS2
然后看有没有中断?
这个25就是多出来的,为什么没有像ttyS0一样显示ttyS2呢
离线
根据你初始化的信息来看 ttyS2 的irq就是等于25的,所以你看到的25应该就是ttyS2的
至于名字,可能是你pinctrl-names少了个s。
离线
uart0_pins_a: uart0@0 {
pins = "PE0", "PE1";
function = "uart0";
};
uart1_pins_a: uart1@0 {
pins = "PA2", "PA3";
function = "uart1";
//bias-pull-up;
};
uart2_pins_a: uart2@0 {
pins = "PE7", "PE8";
function = "uart2";
//bias-pull-up;
};
用自带的设备树也是这种情况,我的改成这样就工作正常了
离线
uart0_pins_a: uart0@0 {
pins = "PE0", "PE1";
function = "uart0";
};uart1_pins_a: uart1@0 {
pins = "PA2", "PA3";
function = "uart1";
//bias-pull-up;
};
uart2_pins_a: uart2@0 {
pins = "PE7", "PE8";
function = "uart2";
//bias-pull-up;
};
用自带的设备树也是这种情况,我的改成这样就工作正常了
你也是荔枝派Nano吗
离线
根据你初始化的信息来看 ttyS2 的irq就是等于25的,所以你看到的25应该就是ttyS2的
至于名字,可能是你pinctrl-names少了个s。
那我现在是成功了吗,还是接受不到数据,是不是跟着名字没有显示有关系
离线
你也是荔枝派Nano吗
是的,电脑上用9600波特率接收看看
离线
是的,电脑上用9600波特率接收看看
你的中断有显示ttyS2这个名字吗,我串口还是不行
离线
是的,电脑上用9600波特率接收看看
方便传一下你的设备树吗
离线
方便传一下你的设备树吗
我的设备树关于串口的就这里,也没啥
dtsi文件
pio: pinctrl@1c20800 {
compatible = "allwinner,suniv-f1c100s-pinctrl";
reg = <0x01c20800 0x400>;
interrupts = <38>, <39>, <40>;
clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
interrupt-controller;
#interrupt-cells = <3>;
#gpio-cells = <3>;
spi0_pins_a: spi0-pins-pc {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
};
/*
uart0_pe_pins: uart0-pe-pins {
pins = "PE0", "PE1";
function = "uart0";
};
*/
uart0_pins_a: uart0@0 {
pins = "PE0", "PE1";
function = "uart0";
};
uart1_pins_a: uart1@0 {
pins = "PA2", "PA3";
function = "uart1";
//bias-pull-up;
};
uart2_pins_a: uart2@0 {
pins = "PE7", "PE8";
function = "uart2";
//bias-pull-up;
};
};
uart0: serial@1c25000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c25000 0x400>;
interrupts = <1>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART0>;
resets = <&ccu RST_BUS_UART0>;
status = "disabled";
};
uart1: serial@1c25400 {
compatible = "snps,dw-apb-uart";
reg = <0x01c25400 0x400>;
interrupts = <2>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART1>;
resets = <&ccu RST_BUS_UART1>;
status = "disabled";
};
uart2: serial@1c25800 {
compatible = "snps,dw-apb-uart";
reg = <0x01c25800 0x400>;
interrupts = <3>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART2>;
resets = <&ccu RST_BUS_UART2>;
status = "disabled";
};
dts文件
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins_a>;
status = "okay";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins_a>;
status = "okay";
};
离线
谢谢你们的帮助,我刚才打开设备树看了一下,我好像真的差了一个s,只写了name 现在在重新烧录,希望可以接受到
离线
可算有数据了,但是还是没有名字ttyS2,尴尬
离线