-
811651854@qq.com 详聊哈
-
BLE MESH技术
-
你用的什么开发环境啊?版本多少?
详聊加我QQ 811651854
-
哥们 虽然我已经写好了 但是还要谢谢你
-
https://bbs.eeworld.com.cn/thread-318712-1-2.html
去看看 一个很好的串口中断收发例程 正好适合你
-
请问如何格式化
-
应该是你打开的工程是用较早版本的IAR环境开发的 而5.41里面"__write"估计已经改写过了 不是"__write"了 你试试看把"__write"改成"__iar_write"
-
我找到问题所在了,应该是你的options->linker->config选项卡下内容设置不对 你去C盘下搜索一个名为STM32F10x_FLASH.icf的文件 然后复制到你工程下 然后在options->linker->config选项卡下包含这个文件就可以了 如果还不理解 加我qq 811651854
-
我也遇到了这样的问题 请问你后来怎么解决的啊
-
作为一个新手 很感谢楼主的无私奉献
-
楼主真的很强大啊 拜服
-
做开发确实不能一直浮在上面 要对底层和硬件打交道的东西多了解才行 希望楼主继续造福贴友
-
很好 建议楼主版主直接上pdf吧
-
我也来看看
-
你去启动文件startup_ewarm.c 里面注册
方法如下:
首先声明一下你用到的中断处理函数 如:void UART1_ISR(void);
然后在中断函数表中根据注释找到相应的串口1中断函数那行 如:IntDefaultHandler, // UART1 Rx and Tx
把这行的IntDefaultHandler,换成UART1_ISR, 然后就注册完成了
-
你的中断处理函数名对不对啊 我用的是1138的片 我的中断处理函数名称是void UART1_ISR(void ); 要不你改一下试试看
-
恩 我照做了 然后就好了 谢谢大侠
-
恩 你说的对 我加了接收语句之后 就可以了 谢谢啊
-
恩 谢谢各位朋友 小弟刚刚接触 不太懂 谢谢大家
-
谢谢楼上抽空关注小弟的帖子 那个现在我把接收超时中断关掉了 不会反复执行了 可是有了另外一个问题 就是我连续给M3发数据的时候 中断处理函数只触发执行一次 再发数据 中断函数就不触发执行了 代码如下:
/ UART初始化
void uartInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_UART1); // 使能UART模块
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); // 使能RX/TX所在的GPIO端口
IntMasterEnable();
GPIOPinTypeUART(GPIO_PORTD_BASE, // 配置RX/TX所在管脚为
GPIO_PIN_2 | GPIO_PIN_3); // UART收发功能
UARTConfigSet(UART1_BASE, // 配置UART端口
9600, // 波特率:115200
UART_CONFIG_WLEN_8 | // 数据位:8
UART_CONFIG_STOP_ONE | // 停止位:1
UART_CONFIG_PAR_NONE); // 校验位:无
/* UARTFIFOLevelSet(UART0_BASE, // 设置发送和接收FIFO深度
UART_FIFO_TX4_8, // 发送FIFO 为2/8深度(4B)
UART_FIFO_RX1_8); // 接收FIFO 为6/8深度(12B)*/
UARTIntEnable(UART1_BASE,UART_INT_RX);
IntEnable(INT_UART1);
IntMasterEnable();
UARTEnable(UART1_BASE); // 使能UART端口
}
void UART1_ISR(void)
{
unsigned long ulStatus;
ulStatus=UARTIntStatus(UART1_BASE,true); // 读取当前中断状态
UARTIntClear(UART1_BASE,ulStatus);// 清除中断状态
UARTCharPut(UART1_BASE,'Y');
}
// 主函数(程序入口)
int main(void)
{
clockInit(); // 时钟初始化:晶振,6MHz
SysCtlPeriEnable(LED_PERIPH); // 使能LED所在的GPIO端口
GPIOPinTypeOut(LED_PORT, LED_PIN); // 设置LED所在管脚为输出
uartInit(); // UART初始化
for(;;);
}