松翰单片机_SN8F570310——UART
SN8F570310——UART
哎,没想到工作之中又玩起了单片机!!!
平台:松翰 SN8F570310
官网:http://www.sonix.com.tw/masterpage-tw
也就这些
通过串口助手发送 ——》 单片机UART_RX ——》 串口接收中断_UART_TX ——》 逻辑分析仪
1 #include "Equ.h" 2 3 /* 硬件IO 4 XIN /UTX/T2CC0/P0.0 UART_TX 5 XOUT/URX/T2CC1/P0.1 UART_RX 6 */ 7 8 #define SYSUartSM0 (0 << 6) 9 #define SYSUartSM1 (1 << 6) 10 #define SYSUartSM2 (2 << 6) 11 #define SYSUartSM3 (3 << 6) 12 #define SYSUartREN (1 << 4) //接收功能 13 #define SYSUartSMOD (1 << 7) 14 #define SYSUartSMODE1 (1 << 7) 15 #define SYSUartBD1 (1 << 7) 16 #define SYSUartES0 (1 << 4) 17 18 19 void uart_init(void) 20 { 21 //IO配置 22 P00 = 1; //UART_RX 输入模式 23 P0M = P0M | 0x01& ~0x02; //UART_TX 输出模式 24 25 26 //模式使能 27 S0CON = SYSUartSM1 | SYSUartREN; //模式1 28 29 //波特率 9600 30 //PCON = SYSUartSMODE1; 31 S0CON2 = SYSUartBD1; 32 S0RELH = 0x03; 33 S0RELL = 0Xf3; 34 35 //使能串口中断 36 IEN0 |= SYSUartES0; //打开串口中断 37 IEN0 |= ( 1<<7 ); //打开总中断 38 39 RI0 = 0; 40 41 //发送测试 42 //S0BUF = 0x31; 43 44 } 45 47 void SYSUartInterrupt(void) interrupt ISRUart 48 { 49 /* 50 if (TI0 == 1) { 51 S0BUF = uartTxBuf; 52 TI0 = 0; 53 }else if (RI0 == 1) { 54 uartRxBuf = S0BUF; 55 RI0 = 0; 56 } 57 */ 58 59 if (RI0 == 1) { 60 RI0 = 0; 61 S0BUF = S0BUF; 62 } 63 }
测试:
笔记:
1. 串口连发S0BUF之间加延时( for(p=0;p<30000;p++){ }),否则出错!!
Stay hungry, stay foolish
待续。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!